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 :
Comme configuré ci-dessus :
- Le créateur du consommable peut effectuer la transition
Rédaction
=>En test
c’est à direRédiger
- Les cuisiniers peuvent effectuer la transition suivante :
À la carte
=>En test
c’est à direRetester
- 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é
):
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
)
Et ensuite ?
Comment paramétrer le cycle de vie - Comment créer des profils dynamiques