Simplifiez vous la vie avec les Custom Permissions

By 24/02/2020 juin 5th, 2020 nouslestechs
3 minutes de lecture

Qu’est-ce qu’une Custom Permission (autorisation personnalisée) ?

Les Custom Permissions permettent d’accorder à des utilisateurs l’accès à des processus ou à des applications personnalisées (Help Salesforce).

Pour résumer brièvement, la custom permission permet de créer une autorisation sans associer à celle-ci des droits Salesforce.

Contrairement à un permission set, par exemple, qui permet d’ajouter un droit sur un champ, une application, ou un objet ; L’autorisation personnalisée peut être considérée comme un « tag » que l’on attribue à des utilisateurs. Les « droits » que l’on accorde via cette custom permission ne sont pas « définis » dans ses propriétés.

 

Un exemple simple pour illustrer son utilité : 

Un client souhaite bloquer la modification d’une opportunité lorsque celle-ci est « fermée », seuls certains utilisateurs salesforce doivent avoir ce droit « bypass » leur permettant de les modifier une fois définie à cette étape.

 

Quelles solutions ? 

Il existe différentes approches pour cette demande, notamment celle de créer une règle de validation de ce type :

AND (PRIORVALUE(IsClosed), $Profile.Name != 'CEO')

Dans cette exemple, seul les utilisateurs ayant un profil ‘CEO’ peuvent modifier l’opportunité une fois celle-ci fermée.

Pas très compliqué pour l’instant, mais que se passera-t-il demain si votre client souhaite étendre autorisation à d’autres utilisateurs ?

Modifier la règle de validation ? Pas très pratique…

Créer un champ Bypass sur l’utilisateur ? Possible, mais allez-vous créer autant de champ bypass sur l’utilisateur que d’autorisations possibles ?

De plus, le bypass au niveau de l’utilisateur se gère comme son nom l’indique du niveau de l’utilisateur…

 

La solution de la Custom Permission 

 

Créer une nouvelle Custom Permission 

Depuis le SETUP, accédez à la page de paramétrage des Custom Permissions

Comme vous pouvez le voir, rien de plus simple !

Un simple nom suffit pour notre exemple. Vous pouvez d’ailleurs voir que vous ne pouvez ajouter aucun droits ou spécificités !

C’est ici que devient intéressant le principe de la custom permission.

Voici la Custom Permission paramétrée. Ne reste plus qu’à l’attribuer à des utilisateurs.

 

Attribution d’une Custom Permission  

Autre avantage, la possibilité d’attribuer cette autorisation à :

  • Un utilisateur (via un permission set contenant la custom permission)
  • Un profil

 

L’exemple de la règle de validation avec la Custom Permission : 

Voyons comment serait définie la custom permission au niveau de la règle de validation :

AND (PRIORVALUE(IsClosed), NOT($Permission.UpdateClosedOpportunity))

De cette façon, si le client modifie les utilisateurs profitant de cette autorisation, plus besoin de modifier la règle de validation !

Il suffit de mettre à jour la liste des utilisateurs pouvant bénéficier de cette autorisation.

Autres avantages des Custom Permission : 

Ces custom permissions sont très pratiques car elles peuvent être utilisées en développement et paramétrage :

 

Voici les moyens de les utiliser en fonction de l’outil : 
A titre de comparaison : 

On voit dans ce tableau la flexibilité qu’offre les Custom Permissions par rapport à d’autres métadonnées.

Autre avantage notable, la possibilité de créer des « dépendances » entre plusieurs Custom Permission : 

Concrètement, cela signifie qu’il est possible de définir qu’une Custom Permission requiert l’accès à une autre Custom Permission.

Voir plus loin : 

Les exemples d’utilisation sont donc très nombreux et on peut penser à de multiples façons de profiter de cette fonctionnalité.

 

Voici un autre exemple : Les filtres de pages lightning

Le client souhaite afficher un composant sur un page lightning, un flux d’écran par exemple. Il est parfois peu souhaitable de « re-créer » une page lightning pour cacher un composant sur la page; La solution d’un filtre s’offre alors à l’administrateur.

Dans cet exemple, le besoin est d’afficher un flux d’écran pour certains utilisateurs. La fonctionnalité qu’offre ce flux n’est pas associable à un profil bien spécifique…

 

La solution !?

Un custom permission nommé « PreSalesFlow ». Cette autorisation utilisée comme filtre permet de n’afficher le composant que si l’utilisateur possède cette autorisation.

Dans ce filtre, plus besoin de nommer des profils, des rôles ou autres…

 

Avantage :

Si cette fonctionnalité doit être étendue ou restreinte, pas besoin de modifier les conditions du filtre. Il vous suffit de modifier les assignations de cette autorisation.

 

En bref

Lorsque vous avez besoin de donner accès des « fonctionnalités », l’utilisation des Custom Permissions peut être d’un avantage certain.

  • Evitez autant que possible de créer des champs sur l’objet « utilisateur » si vous pouvez créer une autorisation personnalisée à la place.
  • La granularité de ces Custom Permissions est un avantage notable et permet de gérer facilement des accès spécifiques.
  • Facilement utilisable en paramétrage ou développement, elles permettent une maintenabilité accrue de votre environnement.

 

Article écrit par Charles GATTO, Consultant CARRENET, Architecte Application Salesforce.

Contactez-nous !

Thank you!
We got your message
We will answer in the next 24h