Skip to content

Sécurité

Mécanismes de sécurité, modèle de permissions et application CRUD/FLS.

Modèle de permissions

Ensembles de permissions

PERMISSION SETS FTS_App_Access (Administrateurs) App : FlexibleTeamShare Onglets : tous visibles Apex : toutes les classes Objets : CRUD complet + MAR Team_Sharing_Config: CRUD FTS_Data_Access (Utilisateurs finaux) ObjectTeamMember__c: CRUD Team_Sharing_Config__c: Read Apex : contrôleurs uniquement Pas de View/Modify All Records
Permission SetAudienceCapacités
FTS_App_AccessAdministrateursAccès complet à l’application, tous les onglets, toutes les classes Apex, CRUD complet + Modify All Records sur les objets, Team_Sharing_Config CRUD
FTS_Data_AccessUtilisateurs finauxObjectTeamMember__c CRUD, Team_Sharing_Config__c Read, classes Apex contrôleur uniquement, aucun View/Modify All Records

Logique de contrôle d’accès

Qui peut gérer lesmembres de l'équipe ? Non Non Non Oui Oui Oui Administrateursystème ? Propriétaire del'enregistrement ? Membre d'équipe avecrôle Managerou Owner ? AUTORISÉ REFUSÉ

La méthode isCurrentUserManager() détermine qui peut gérer les membres d’équipe :

  1. System Administrators — toujours autorisés
  2. Record Owners — toujours autorisés
  3. Membres d’équipe avec rôle Manager/Owner — autorisés
  4. Tous les autres — refusés

Application CRUD/FLS

CONTRÔLES CRUD/FLS Create isCreateable() Update isUpdateable() +isCurrentUserManager() Delete isDeletable() +isCurrentUserManager() Read WITH USER_MODE MODE D'EXÉCUTION Appliqué dans le contrôleur Accès élevé(without sharing) Respecte OWD/Sharing
OpérationVérification de sécuritéImplémentation
Create Team MemberSchema.sObjectType.ObjectTeamMember__c.isCreateable()Appliqué dans le contrôleur
Update Team MemberisUpdateable() + isCurrentUserManager()Accès élevé (without sharing) après autorisation
Delete Team MemberisDeletable() + isCurrentUserManager()Accès élevé (without sharing) après autorisation
Read Team MembersWITH USER_MODE / sharing modelRespecte OWD/partage

Validation des entrées

EntréeValidationEmplacement
recordIdNon vide, format d’ID Salesforce valideController
userIdNon vide, User ID valideController
accessLevelNon vide, valeur de liste de sélection valideController + Picklist
roleNon vide, valeur de liste de sélection valideController + Picklist
endDateDoit être une date future ou nullController + Validation Rule
objectApiNameDérivé de l’ID Salesforce (pas d’entrée utilisateur)Controller

Règles de validation

RègleObjetDescription
End_Date_Cannot_Be_PastObjectTeamMember__cEmpêche la définition d’une date de fin dans le passé

Mappage des niveaux d’accès

ObjectTeamMember__cAccess_Level__c Read Only Read/Write [Object]ShareAccessLevel Read Edit

Vue d’ensemble complète de la sécurité

PERMISSION SETS FTS_App_AccessAdministrateurs FTS_Data_AccessUtilisateurs finaux CONTRÔLE D'ACCÈS System Admin Record Owner Rôle Manager/Owner MODÈLE DE PARTAGE ObjectTeamMember__Share [Object]Share NIVEAUX D'ACCÈS Read Only → Read Read/Write → Edit

Meilleures pratiques de sécurité implémentées

ContrôleStatutImplémentation
Vérifications CRUD dans les contrôleursImplémentéisAccessible(), isCreateable(), isUpdateable(), isDeletable()
Application FLSImplémentéLes ensembles de permissions contrôlent l’accès aux champs
Prévention de l’injection SOQLImplémentéVariables liées pour l’entrée utilisateur, liste blanche pour les noms d’objets
Modèle de partageImplémentéwith sharing sur les contrôleurs, without sharing uniquement là où documenté
Validation des entréesImplémentéVérifications null, validation de format, règles métier
Prévention XSSImplémentéLe framework LWC gère l’encodage de sortie

Sécurité de l’intégration externe

VérificationRésultat
HTTP CalloutsAucun — le package ne fait aucun appel externe
Named CredentialsNon utilisé
External ObjectsNon utilisé
Remote Site SettingsNon requis
Violations CSPRéussite — aucune violation Content-Security-Policy