• Accueil / Salesforce / Org Documentor et…
, Org Documentor et classes AuraEnabled<span class="wtr-time-wrap after-title"><span class="wtr-time-number">4</span> minutes de lecture</span>

Org Documentor et classes AuraEnabled4 minutes de lecture


, Org Documentor et classes AuraEnabled<span class="wtr-time-wrap after-title"><span class="wtr-time-number">4</span> minutes de lecture</span>

introduction

Dans la version Winter 21 de Salesforce, accédez aux méthodes AuraEnabled dans
Les classes Apex seront limitées aux utilisateurs avec des profils ou des ensembles d’autorisations
accorder l’accès à ces classes. Si vous avez récemment travaillé dans un bac à sable
vous l’avez probablement déjà rencontré, car la mise à jour critique pour cela était
activé le 8 août.

Déterminer qui (le cas échéant) a accès aux cours n’est pas simple, car
vous devez parcourir les profils et les ensembles d’autorisations et vérifier chacun d’eux.
Salesforce a créé un
Scanner compatible Aura
application qui peut être installée via un package déverrouillé, qui vérifie
code packagé et non packagé, mais cela nécessite que vous vous connectiez à Salesforce
chaque fois que vous devez vérifier les choses.

Cela m’a semblé être un bon candidat pour mon Org Documentor
Plug-in CLI Salesforce – quelque chose qui peut être exécuté selon un calendrier, vérifiez que
toutes les nouvelles classes utilisées comme contrôleurs pour les composants Web Aura ou Lightning sont
accessible et affiche les profils / ensembles d’autorisations qui ont accès.

Configuration

Pour ajouter un traitement pour les classes AuraEnabled, une strophe supplémentaire est requise dans
le fichier de configuration passé à la commande bbdoc – voici à quoi il ressemble
dans mon exemple de repo:

"auraenabled": {
    "name": "auraenabled",
    "description": "AuraEnabled Class Access", 
    "subdirectory": ".",
    "image": "images/auraenabled.png",
    "suffix":"object",
    "groups": {
        "other": {
            "name":"other", 
            "title":"AuraEnabled Components",
            "description": "All components with Apex controllers"
        }
    }
}

Comme pour les autres types de métadonnées, vous pouvez spécifier plusieurs groupes pour découper votre
composants dans des domaines fonctionnels – je les ai tous regroupés dans un seul groupe pendant que je
n’ont qu’un seul composant!

Production

La page d’index (d’accueil) du rapport d’organisation affiche une nouvelle fiche pour le
Métadonnées AuraEnabled:

, Org Documentor et classes AuraEnabled<span class="wtr-time-wrap after-title"><span class="wtr-time-number">4</span> minutes de lecture</span>

Un badge d’erreur s’affiche s’il y a une ou plusieurs classes utilisées comme
contrôleurs pour les composants qui ne sont accessibles depuis aucun profil ou
jeu d’autorisations.

Cliquer sur les détails affiche les groupes et les erreurs:

, Org Documentor et classes AuraEnabled<span class="wtr-time-wrap after-title"><span class="wtr-time-number">4</span> minutes de lecture</span>

et cliquer dans le groupe montre le détail de chaque composant, avec des classes
qui ne sont pas accessibles mis en évidence comme des erreurs:

, Org Documentor et classes AuraEnabled<span class="wtr-time-wrap after-title"><span class="wtr-time-number">4</span> minutes de lecture</span>

Notez que si un composant Web Lightning accède à plusieurs classes Apex,
sera une ligne pour chaque classe avec le même nom de composant dans le rapport, comme
montré ci-dessus.

En traitement

J’ai été très satisfait du peu de code que j’ai dû écrire pour ajouter la prise en charge de ceci:

  • Une structure de carte de classes est créée en mémoire,
    profilesAndPermSetsByClassname, où chaque entrée a le nom de classe Apex comme
    une clé et un objet valeur contenant des listes d’ensembles d’autorisations et de profils
    avec accès à la classe. Ceci est généré en chargeant tout le profil
    et les métadonnées d’ensemble d’autorisations et l’itération des sections ClassAccess.

  • Les groupes de composants sont itérés, et pour chaque entrée du groupe:

    • S’il s’agit d’un composant Aura, l’attribut de contrôleur du
      la balise est extraite

    • S’il s’agit d’un composant Web d’éclairage (qui peut accéder à plusieurs Apex
      classes), @ salesforce / apex / lines sont identifiés et le nom de la classe Apex
      extrait.

      Pour chaque classe:

      • L’entrée de la classe dans la mappe profilesAndPermSetsByClassname est
        extrait. Si cela est nul ou à la fois du profil et du jeu d’autorisations
        les listes sont vides, le nom de la classe est ajouté à la collection d’erreurs
        affiché sur la page du groupe.

      • Une ligne est ajoutée à l’objet JavaScript soutenant la page de groupe
        affichage des profils / ensembles d’autorisations qui ont accès, ajout de l’erreur
        couleur de surbrillance s’il n’y en a pas.

Brancher

Le plug-in bbddoc Salesforce CLI mis à jour fournissant la prise en charge d’AuraEnabled peut être
trouvé sur NPM, et le code source est disponible dans le référentiel Github.

Pourquoi ne pas utiliser AuraEnabledScanner?

Vous devriez absolument – je le fais, pour configurer l’accès. Cela fonctionne avec AuraEnabledScanner plutôt que de le remplacer. Au fur et à mesure que le développement se poursuit, de nouvelles classes et composants sont ajoutés à votre base de code. L’Org Documentor signale ceux qui n’ont pas l’accès approprié, et vous pouvez ensuite vous connecter à une organisation dans laquelle vos métadonnées sont déployées, exécuter le scanner et réparer l’accès.

Le scanner gère également les classes gérées que l’Org Documentor ne fait pas, car il fonctionne contre votre les métadonnées sur le disque plutôt que tout ce qui est installé dans une instance d’organisation spécifique.

Articles Similaires





Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Voulez-vous utiliser Pardot à sa capacité maximale et avoir
+ DE LEADS QUALIFIÉS

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer