Comment créer un compte

Recommandation

Si vous n'êtes pas familier avec les Comptes et leur fonctionnement, il est fortement recommandé de lire la documentation associée disponible ici

Distinction des membres du restaurant

Rôles

Informations

Les rôles servent à déposer des droits et peuvent être associés à des groupes

Nous partons du principe qu'il y a dans notre restaurant deux types de salarié :

  • Le directeur
  • Les cuisiniers

Pour cela, rendons-nous dans le fichier src/vendor/<vendorName>/<moduleName>/Accounts/100-RestauratecRoles.xml afin de créer ces rôles :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<accounts:accounts xmlns:accounts="https://platform.anakeen.com/4/schemas/account/1.0">
  <accounts:roles>
    <accounts:role name="role_restaurant_member">
      <accounts:displayName>Membre du restaurant</accounts:displayName>
    </accounts:role>
    <accounts:role name="role_cuisinier">
      <accounts:displayName>Cuisinier</accounts:displayName>
    </accounts:role>
    <accounts:role name="role_direction">
      <accounts:displayName>Direction</accounts:displayName>
    </accounts:role>
  </accounts:roles>
</accounts:accounts>

Groupes

Nos groupes s'organisent de la façon suivante : Le groupe Personnel du restaurant contient les groupes Direction et Cuisiniers (Cela montre l'héritage entre les groupes)

Nous associons les rôles respectif à chaque groupe. Ainsi, tous les utilisateurs présents dans ce groupe porteront le(s) rôle(s) associé(s) à ce dernier. Rendons-nous dans le fichier src/vendor/<vendorName>/<moduleName>/Accounts/110-RestauratecGroups.xml :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<accounts:accounts xmlns:accounts="https://platform.anakeen.com/4/schemas/account/1.0">
  <accounts:groups>
    <accounts:group name="group_restaurant_member">
      <accounts:displayName>Personnel du restaurant</accounts:displayName>
      <!-- reset à true indique que lors d'une réinstallation, si ces associations existent, elles seront remplacées -->
      <accounts:associatedRoles reset="true">
          <!-- Associe le rôle `restaurant_member` précédemment créé au groupe en train d'être créé -->
        <accounts:associatedRole ref="role_restaurant_member"/>
        <accounts:associatedRole ref="hub-user-role"/>
      </accounts:associatedRoles>
    </accounts:group>
    <accounts:group name="group_cuisinier">
      <accounts:displayName>Cuisiniers</accounts:displayName>
      <accounts:associatedRoles reset="true">
          <!-- Associe le rôle `cuisinier` précédemment créé au groupe en train d'être créé -->
        <accounts:associatedRole ref="role_cuisinier" />
      </accounts:associatedRoles>
      <accounts:parentGroups>
          <!-- `group_cuisinier` a pour groupe parent `group_restaurant_member` -->
          <accounts:parentGroup ref="group_restaurant_member"/>
      </accounts:parentGroups>
    </accounts:group>
    <accounts:group name="group_direction">
      <accounts:displayName>Direction</accounts:displayName>
      <accounts:associatedRoles reset="true">
          <!-- Associe le rôle `direction` précédemment créé au groupe en train d'être créé -->
        <accounts:associatedRole ref="role_direction" />
      </accounts:associatedRoles>
      <accounts:parentGroups>
          <!-- `group_direction` a pour groupe parent `group_restaurant_member` -->
          <accounts:parentGroup ref="group_restaurant_member"/>
      </accounts:parentGroups>
    </accounts:group>
  </accounts:groups>
</accounts:accounts>

Utilisateurs

Nous allons maintenant créer plusieurs utilisateurs : le directeur et les cuisiniers. Pour cela, rendons-nous dans le fichier src/vendor/<vendorName>/<moduleName>/Accounts/120-RestauratecUsers.xml :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<accounts:accounts xmlns:accounts="https://platform.anakeen.com/4/schemas/account/1.0">
  <accounts:users>
    <!-- Directeur -->
    <accounts:user login="pope">
      <accounts:firstname>Henry</accounts:firstname>
      <accounts:lastname>Pope</accounts:lastname>
      <accounts:mail>henry.pope@example.net</accounts:mail>
      <accounts:password crypted="false">V01c1 un m0t de pa553 trè5 5écur15é</accounts:password>
      <accounts:status activated="true"/>
      <accounts:associatedRoles>
          <!-- Associe le rôle `directeur` précédemment créé à cet utilisateur -->
          <accounts:associatedRole ref="role_direction"/>
      </accounts:associatedRoles>
    </accounts:user>
    <!-- Cuisiniers -->
    <accounts:user login="scofield">
      <accounts:firstname>Michael</accounts:firstname>
      <accounts:lastname>Scofield</accounts:lastname>
      <accounts:mail>michael.scofield@example.net</accounts:mail>
      <accounts:password crypted="false">V01c1 un m0t de pa553 trè5 5écur15é</accounts:password>
      <accounts:status activated="true"/>
      <accounts:parentGroups>
          <!-- Associe le groupe `cuisiniers` précédemment créé à cet utilisateur -->
          <accounts:parentGroup ref="group_cuisinier"/>
      </accounts:parentGroups>
    </accounts:user>
    <accounts:user login="burrows">
      <accounts:firstname>Lincoln</accounts:firstname>
      <accounts:lastname>Burrows</accounts:lastname>
      <accounts:mail>lincoln.burrows@example.net</accounts:mail>
      <accounts:password crypted="false">V01c1 un m0t de pa553 trè5 5écur15é</accounts:password>
      <accounts:status activated="true"/>
      <accounts:parentGroups>
          <!-- Associe le groupe `cuisiniers` précédemment créé à cet utilisateur -->
          <accounts:parentGroup ref="group_cuisinier"/>
      </accounts:parentGroups>
    </accounts:user>
  </accounts:users>
</accounts:accounts>

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

Vérification / Résultat

Il est possible de consulter dans le centre d'administration les comptes créés. Pour cela, rendez-vous dans la partie Compte de ce dernier : http://<contextUrl>/admin/accounts/

Comptes;

Et ensuite ?

Comment créer une Smart Structure