Exemple de conditionnement d’un bouton en utilisant un droit par fonctionnalités

Edit me

Introduction

Les manuels utilisateurs de Voozanoo 4 et d’EpiCraft donnent de nombreux exemples de conditions d’affichage.

Par exemple, si l’on souhaite conditionner un bouton Valider cette déclaration dans un formulaire pour que seuls les médecins puissent le voir, on peut utiliser la syntaxe suivante :

{user->roles}.indexOf('medecin') != -1

Ceci-dit, l’autorisation de valider une déclaration est un droit. Il semblerait logique qu’il soit avec les autres droits, sur la page de paramétrage des rôles de Voozanoo 4. De cette manière, ce droit pourra être coché et décoché comme n’importe quel autre par un administrateur. Nul besoin de modifier les formulaire dans EpiCraft si, finalement, on autorise les infirmiers à valider les déclarations quelques mois plus tard. De plus, ceci permet de donner une existence concrète, dans le logiciel, des actions métiers.

Ces droits par fonctionnalité sont appelés access dans Voozaoo 4.

Comment faire ?

Etape 1 : Créer le nouveau access dans Voozanoo 4

Procédure

  1. Aller dans les ressources du projet Voozanoo 4
  2. Accéder à la ressource de type ACL Resources si elle existe, la créer sinon
  3. L’éditer comme ci-dessous
<?xml version="1.0" encoding="UTF-8"?>
<acl_resources>

  <!-- D'autres choses peut-être -->

  <group label="Droits sur les déclaration">
    <resource name="declaration.valider" label="Valider les déclarations"/>
  </group>

</acl_resources>

Quelques remarques

  • La balise <group> ne sert que pour organiser visuellement les droits sur la page de configuration des rôles.
  • L’attribut name est libre. Il s’agit du nom technique du droit qui sera utilisé dans les conditions d’affichage.
  • L’attribut label ne sert qu’à donner un libellé clair à la case à cocher sur la page de configuration des rôles.

Résultat sur la page des rôles

access_in_role_page

Etape 2 : Utiliser l’access sur un formulaire

Dans un formulaire, pour conditionner un composant au droit Valider les déclarations, utiliser la syntaxe suivante :

{user->access}.indexOf('declaration.valider') != -1

C’est tout.

Avertissement

Attention cependant, la ressource ACL Resources n’étant pas centralisée par EpiCraft, il faut penser à l’éditer dans chaque environnement de publication (préproduction, production, etc.).