Comment paramétrer le cycle de vie - Droits d’accès aux différentes transition

Prérequis

Afin de pouvoir suivre ce guide, il faut préalablement avoir créé un cycle de vie (workflow).

Comment procéder ?

Nous allons ici tout simplement lier les comptes (utilisateur/rôle/groupe) aux transitions qu’ils ont le droit d’exécuter.

Rappel

Les différents états et transitions du cycle de vie ont été définis lors de la déclaration du graph du workflow.

Rendons-nous donc dans le fichier permettant de gérer les accès de notre instance de Workflow afin de créer ces liens : src/vendor/<vendorName>/<moduleName>/SmartStructures/Plat/PlatWorkflows/WdocPlatWorkflow/140-WdocPlatWorkflowAccess.xml

Attribut XML Description
config/access-configuration/@name (obligatoire) Référence du workflow. Nom logique du Smart Element créé
config/access-configuration/@profil-type (obligatoire) Référence du modèle workflow.
config/access-configuration/@access-structure Référence de la Smart Structure compatible avec ce workflow.
config/access-configuration/@policy Indique la politique a adopter lors de l’import des règles de ce document
config/access-configuration/element-access/@access Référence de la transition
config/access-configuration/element-access/@account Référence du compte ayant l’accès à la transition
config/access-configuration/element-access/@field Référence d’un Smart Field (de type account) ayant l’accès à la transition
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0">
    <smart:access-configuration name="WDOC_PLAT" profil-type="WFAM_PLAT" access-structure="PLAT" policy="RESET">
        <smart:element-access access="t_plat_e0_e1" field="consommable_creator" />
        <smart:element-access access="t_plat_e1_e2" account="role_direction" />
        <smart:element-access access="t_plat_e2_e1" account="role_cuisinier" />
        <smart:element-access access="t_plat_e2_e3" account="role_direction" />
        <smart:element-access access="t_plat_e3_e2" account="role_direction" />
        <smart:element-access access="t_plat_e1_e3" account="role_direction" />
        <smart:element-access access="t_plat_e3_e1" account="role_direction" />
    </smart:access-configuration>
</smart:config>

Attention

Pensez à effectuer une réinstallation afin que l’application prenne en compte les modifications effectuées :

npx @anakeen/anakeen-cli deploy -c http://localhost:8080/control -s . -u admin -p anakeen --reinstall

Voilà le rendu schématique de ce paramétrage :

Droits_finaux

Comme configuré ci-dessus :

  • Le créateur du consommable peut effectuer la transition Rédaction => En test c’est à dire Rédiger
  • Les cuisiniers peuvent effectuer la transition suivante : À la carte => En test c’est à dire Retester
  • et le directeur a lui la possibilité d’exécuter n’importe laquelle des transitions restantes.

Libre à vous de gérer qui possède quels droits. En tout cas, les droits des transitions de votre cycle de vie sont maintenant gérés par compte.

Résultat / Vérification

Nous souhaitons vérifier que seul le créateur d'un plat peut effectuer la transition Rédaction => En test et que seul les cuisiniers peuvent effectuer la transition À la carte => En test.

Pour ce faire, commençons par créer un plat avec un utilisateur ayant le rôle role_direction :

http://localhost:8080/api/v2/smart-elements/PLAT/views/!defaultCreation.html

Une fois le plat crée, vérifions que l'utilisateur peut effectuer la transition Rédaction => En test (Rédigé):

direction_droit

Avançons ensuite dans le cycle de vie jusqu'à avoir l'état A la carte. Vérifions avec un utilisateur ayant le rôle role_cuisinier que pour ce même plat, il peut effectuer la transition À la carte => En test (Retester)

cuisinier_droit

Et ensuite ?

Comment paramétrer le cycle de vie - Comment créer des profils dynamiques