21 mars 2025, 12:22:15 Philippe Bareille

Gérer les utilisateurs par entité organisationnelle - le plugin Unittree et les modules forms-unittree et workflow-unittree

Table des matières

Présentation du plugin

Le plugin Unittree permet une organisation fine des comptes utilisateurs du back-office par entité organisationnelle. Les entités organisationnelles sont des groupes et sous groupes hiérarchisés. Les réponses aux formulaires Lutece peuvent être assignées à une entité organisationnelle via une tâche du plugin Workflow. Les réponses aux formulaires sont ainsi réparties en fonction de l’organisation mise en place pour traiter les réponses. Les modules module-workflow-unittree et forms-unittree doivent également être installés.

Le plugin répond à un besoin de sécurisation des accès aux données et de répartition de la gestion des réponses aux formulaires. L’arborescence d’entités organisationnelles permet de limiter la vue des utilisateurs à certaines réponses de certains formulaires d’une application Lutèce.

Exemple d'organisation de trois groupes hiérarchisés

Exemple d’utilisation :

  • Une entité organisationnelle peut avoir pour rôle d’être premier destinataire des réponses, une autre peut être spécialisée dans certains types de dossiers et en être l’unique destinataire, etc.
  • Des utilisateurs peuvent être rattachés à une entité organisationnelle représentant une direction métier et seules les réponses aux formulaires identifiées comme relatives à cette direction seront accessibles à ce groupe.

Fonctionnalités du plugin

Le plugin-unittree permet de :

  • Créer, modifier, dupliquer, hiérarchiser, déplacer et supprimer des entités organisationnelles
  • Rechercher des comptes utilisateurs dans l’arborescence des entités organisationnelles
  • Affecter, retirer des comptes utilisateurs des entités organisationnelles

Les fonctionnalités du plugin “Unittree” et de ses modules (forms-unittree et workflow-unittree) peuvent être combinées aux fonctionnalités des plugins :

  • “Forms” permettant de créer des formulaires et de gérer les réponses aux formulaires
  • “Workflow” et au module “Workflow-forms” permettant d’assigner les réponses des formulaires à des entités organisationnelles via des tâches de workflow.

Configuration des entités organisationnelles

Menu de gestion des entités organisationnelles commenté

Pour accéder à la page de gestion des entités organisationnelles dans une application Lutece, il faut depuis le Back Office aller dans le sous menu « Gestion des entités organisationnelles ». Lorsque l’écran principal de la page s’affiche, en sélectionnant entité, il est possible de :

  • Ajouter/créer une entité
  • Modifier l’entité sélectionnée
  • Supprimer l’entité sélectionnée
  • Changer l’emplacement de l’entité sélectionnée dans la hiérarchie des entités organisationnelles
  • Visualiser les utilisateurs assignés à l’entité sélectionnée
  • Rechercher des comptes utilisateurs par filtres
  • Affecter de nouveaux utilisateurs
  • Pour chaque ligne d’un utilisateur affecté à l’entité sélectionnée, il est possible de :
    • Déplacer l’utilisateur (changer son entité d’affectation)
    • Retirer l’utilisateur (le désaffecter de l’entité sélectionnée)

Création d’une nouvelle entité organisationnelle

Depuis la page de gestion des entités organisationnelles :

  • Cliquer sur l’entité organisationnelle qui sera parent de l’entité organisationnelle à créer
  • Cliquer ensuite sur le bouton « + » / « Créer une entité »
  • Remplir les champs :
    • Code : identifiant alphanumérique unique de l’entité organisationnelle
    • Nom de l’entité : libellé de l’entité organisationnelle
    • Description : présentation synthétique de la fonction de l’entité organisationnelle
  • Cliquer sur « Créer »

Lors de la création de la première entité organisationnelle, celle-ci sera positionnée sous l’entité organisationnelle parent “Racine”. Elle devient automatiquement la sous entité organisationnelle de l’entité organisationnelle “Racine”. Avec le mécanisme de sélection de l’entité organisationnelle avant de créer, on définit une arborescence organisationnelle.

Modification d’une entité organisationnelle

Depuis la page de gestion des entités organisationnelles :

  • Cliquer sur l’entité organisationnelle qui doit être modifiée
  • Cliquer ensuite sur le bouton « Modifier une entité » qui suit le bouton « + »
  • Modifier les champs souhaités
  • Puis cliquer sur « Modifier »

Suppression d’une entité organisationnelle

Depuis la page de gestion des entités organisationnelles :

  • Cliquer sur l’entité organisationnelle qui doit être supprimée
  • Cliquer ensuite sur le bouton « Supprimer une entité » en rouge
  • Cliquer sur le bouton « OK » de la page de confirmation qui s’affiche. Il est bien sûr possible depuis cette page de confirmation d’annuler l’action avec le bouton « Annuler »
  • Cliquer sur le bouton « OK » de la page de confirmation qui s’affiche quand on poursuit l’action pour revenir sur la page de gestion des entités organisationnelles.

Déplacement d’une entité organisationnelle dans la hiérarchie des entités organisationnelles

Depuis la page de gestion des entités organisationnelles :

  • Cliquer sur l’entité organisationnelle qui doit être déplacée
  • Cliquer ensuite sur le bouton « Déplacer une entité » situé à droite du bouton de suppression d’une entité
  • Sur la page configuration qui s’affiche, sélectionner l’entité vers laquelle déplacée l’entité qui a été sélectionnée. Puis cliquer sur le bouton « Déplacer ». Il est bien sûr possible depuis cette page de confirmation d’annuler l’action avec le bouton « Annuler »
  • Cliquer sur le bouton « OK » de la page de confirmation qui s’affiche quand on poursuit l’action pour revenir sur la page de gestion des entités organisationnelles.
    Si la liste d’entité proposée n’est pas celle souhaitée, il faut cliquer sur le bouton « Remonter » pour afficher les entités d’un niveau plus haut.

Visualiser les comptes utilisateurs assignés à une entité organisationnelle

Lorsqu’on sélectionne une entité dans l’arborescence des entités organisationnelles, le tableau « Liste des utilisateurs » se rafraîchit en proposant la liste des comptes utilisateurs qui sont affectés à l’entité sélectionnée.

Rechercher des comptes utilisateurs dans l’arborescence des entités organisationnelles

Pour rechercher un compte utilisateur :

  • Sélectionner l’entité organisationnelle dans laquelle le rechercher
  • Depuis le tableau « Liste des utilisateurs », cliquer sur le bouton « + Rechercher ». On visualise des critères de recherche suivants :
    • Email : correspond à l’email renseigné dans les comptes utilisateurs
    • Prénom : correspond au prénom renseigné dans le compte utilisateur
    • Nom : correspond au nom renseigné dans les comptes utilisateurs
    • Recherche dans l’arborescence : permet d’étendre la recherche à l’ensemble de l’arborescence. Si cette case n’est pas cochée, la recherche se limitera sur l’entité sélectionnée.
    • Code d’accès : correspond au login des comptes utilisateurs
    • Niveau de droits : filtre sur un des niveaux de droits définis dans l’application
    • Statut : correspond au statut des comptes utilisateurs (activé ou désactivé)

Pour effectuer une recherche :

  • Renseigner un ou plusieurs critères de recherche
  • Puis cliquer sur le bouton « Rechercher » pour afficher le compte utilisateur recherché. Si la case « Recherche dans l’arborescence » est cochée et que le compte utilisateur est affecté à une entité autre que l’entité sélectionnée, l’utilisateur est repositionné sur l’entité dans laquelle le compte utilisateur est affecté.

Affectation d’utilisateurs à des entités organisationnelles

Pour affecter des comptes utilisateurs à une entité organisationnelle, il faut :

  • Cliquer sur l’entité organisationnelle où on souhaite affecter des comptes utilisateurs
  • Cliquer sur « + Affecter des utilisateurs »
  • Sur la page de configuration qui s’ouvre, sélectionner les comptes utilisateurs que l’on souhaite affecter à l’entité organisationnelle
    • soit dans la liste disponible
    • soit en les recherchant par email
    • soit en cochant la case à cocher située à gauche du bouton « + Affecter » pour sélectionner l’ensemble des utilisateurs de la page entière
  • Puis cliquer sur le bouton « + Affecter » pour valider l’action

Déplacement d’un compte utilisateur dans l’arborescence des entités organisationnelles

Pour déplacer un compte affecté à une entité organisationnelle :

  • Cliquer sur le bouton « Déplacer un utilisateur » situé sur la colonne « Actions » du tableau « Liste des utilisateurs »
  • Sur la page de configuration qui s’affiche, sélectionner l’entité vers laquelle déplacer l’utilisateur. Puis cliquer sur le bouton « Déplacer ». Il est bien sûr possible depuis cette page de confirmation d’annuler l’action avec le bouton « Annuler »

Désaffectation d’un compte utilisateur d’une entité organisationnelle

Pour retirer un compte utilisateur d’une entité organisationnelle :

  • Cliquer sur le bouton « Retirer un utilisateur » situé sur la colonne « Actions » du tableau « Liste des utilisateurs »
  • Sur la page de confirmation qui s’affiche, cliquer sur le bouton « OK ». Il est bien sûr possible depuis cette page de confirmation d’annuler l’action avec le bouton « Annuler »

Affichage des réponses aux formulaires en fonction de la configuration des entités organisationnelles

L’affichage des réponses aux formulaires disponibles dans la page “Visualisation des réponses au formulaire” peut se faire en fonction de la configuration des entités organisationnelles. Il est possible de configurer l’affichage dans la page “Visualisation des réponses au formulaire” des onglets :

  • Toutes les réponses : cet onglet liste l’ensemble des réponses aux formulaires de l’application sans filtre. Cet onglet est destiné aux administrateurs techniques ou fonctionnels.
  • Réponses de mon entité : cet onglet liste l’ensemble des réponses aux formulaires dont les réponses sont affectées à l’entité d’assignation de l’utilisateur connecté.
  • Réponses de mes sous-entités : cet onglet liste l’ensemble des réponses aux formulaires dont les réponses sont affectées aux entités filles à l’entité d’assignation de l’utilisateur connecté.

Cette configuration se réalise via la gestion des rôles. À un rôle, il est possible d’ajouter le contrôle “(forms) Onglet de visualisation de réponses” qui donne accès aux ressources :

  • Mes Réponses [forms-userassignment] : cette ressource sera exploitée si les tâches du workflow Userassignment sont configurées
  • Réponses de mes sous-entités [forms-unittree-subunit]
  • Réponses de mon entité [forms-unittree]
  • Toutes les réponses [forms]

Paramétrage d'un rôle pour configurer le filtre d'accès à une entité organisationnelle

Configuration de l’assignation des réponses d’un formulaire à une entité organisationnelle via les tâches de Workflow

L’assignation des réponses de formulaires aux entités organisationnelles se fait via la configuration de tâches de workflow. Les tâches du workflow concernées sont :

  • (entité organisationnelle) Affecter automatiquement une ressource à une entité : une fois configurée, cette tâche automatique s’exécute lorsque l’action automatique est déclenchée par le daemon de déclenchement des tâches automatiques.
  • (entité organisationnelle) Affecter manuellement une ressource à une entité : Cette tâche étant manuelle, elle permet à l’utilisateur en Back Office de la déclencher et selon les paramétrages configurés de choisir à quel groupe la ressource sera affectée.
  • (entité organisationnelle) Désaffecter une ressource aux entités : cette tâche permet de désassigner une réponse aux entités organisationnelles. Cette tâche peut être intégrée à une action automatique ou à une action manuelle.

Pour les 2 actions (entité organisationnelle) Affecter automatiquement une ressource à une entité et (entité organisationnelle) Affecter manuellement une ressource à une entité, il est possible de configurer 4 types d’assignation :

  • Création : permet de définir l’assignation des réponses d’un formulaire à la soumission des réponses.
  • Escalade : permet de définir l’assignation des réponses d’un formulaire à une entité parente.
  • Désescalade : permet de définir l’assignation des réponses d’un formulaire à une entité émettrice.
  • Transfert : permet de définir l’assignation des réponses d’un formulaire à une entité spécifique.

Pour chacune, il est possible de choisir la méthode d’assignation à une entité organisationnelle :

méthode d’affectationtype d’actioncas d’usage
Assigner à une entité spécifiqueManuelle et automatiquePermet de paramétrer l’assignation des réponses d’un formulaire à n’importe quelle entité organisationnelle.
Assigner à l’entité parenteManuelle et automatiquePermet de paramétrer l’assignation des réponses d’un formulaire à une entité organisationnelle parente de l’entité organisationnelle d’assignation actuelle.
Assigner à l’entité émettriceManuelle et automatiquePermet de paramétrer l’assignation des réponses d’un formulaire à l’entité organisationnelle émettrice.
Assigner une entité selon le paramétrage définiManuelle et automatiquePermet de paramétrer l’assignation des réponses d’un formulaire à n’importe quelle entité organisationnelle en fonction d’un ensemble de règles. Ces règles peuvent être définies sur un attribut/champ (generic attribute) à choix multiple.

Cas d’usage des tâches de workflow dans la gestion de réponses de Forms

Dans un contexte de l’utilisation du plugin Forms, il peut être nécessaire de répartir les réponses d’un formulaire entre différentes équipes. Dans ce cas, les équipes seront implémentées sous la forme de différentes entités organisationnelles. Un workflow associé à un formulaire Forms comporte, le plus souvent, une première action automatique qui permet de passer de l’état initial à un état dit “d’instruction du dossier”. L’action automatique menant à ce changement est utilisée d’abord pour notifier l’usager de la bonne réception de son dossier. Dans le cas de l’utilisation des entités organisationnelles, c’est dans cette première action que l’on peut utiliser la tâche (entité organisationnelle) Affecter automatiquement une ressource à une entité avec :

  • un type d’assignation “Création”
  • une assignation à une entité organisationnelle spécifique ou entité organisationnelle en fonction d’un paramétrage spécifique défini.

Dans cet exemple, le formulaire comporte une question de type liste permettant à l’usager de choisir l’arrondissement dans lequel sa demande s’intègre. La valeur choisie dans la liste va permettre l’affectation à une entité organisationnelle.

Configuration de la tâche selon des paramétrages

Dans la suite du workflow, il est possible de prévoir un ensemble de tâches manuelles qui n’impliquent pas forcément un changement d’état (on choisira le même état d’arrivée que celui de départ) mais qui permettent de faire circuler le dossier entre différentes entités organisationnelles.

Exemple de workflow contenant des tâches liées aux entités organisationnelles

Dans ce workflow on prévoit trois actions qui ont pour état de départ et d’arrivée l’état “Demande reçue (en cours d’instruction)” :

  • Le transfert de dossier, qui permet de changer d’entité organisationnelle manuellement, en sélectionnant dans le back office l’entité réceptrice.
  • L’escalade, qui affecte à l’entité parente immédiate.
  • Le renvoi à l’entité émettrice, qui affecte directement à la dernière entité affectée.

Ces actions sont tracées en historique pour chaque réponse qui a pu connaître une modification.

Exemple d'actions disponibles pour une réponse et l'historique de la réponse

Exemples de services exposés

Pour faire le lien entre les fonctionnalités présentées précédemment et le code associé, voici quelques exemples de services exposés :

MéthodeFonctionCode source
UnitServiceService exposant les méthodes de création, déplacement et récupération des entités organisationnellesfr.paris.lutece.plugins.unittree.service.unit.UnitService.java
getAllUnits(boolean)Récupérer la liste de l’ensemble des entités organisationnelles existantes.fr.paris.lutece.plugins.unittree.service.unit.UnitService.java
//getSubUnits//Récupérer la liste des sous-entités à partir de l’id de l’entité parente, uniquement au niveau n+1.
getAllSubUnitsRécupérer la liste de l’ensemble des sous-entités à partir de l’id de l’entité parente, jusqu’au dernier niveau.
doCreateUnitCréer une entité organisationnellefr.paris.lutece.plugins.unittree.web.UnitJspBean.java
doMoveSubTreeDéplacer dans la hiérarchie une entité organisationnelle
IUnitAttributeServiceInterface à implémenter si l’on souhaite ajouter des attributs spécifiques à son projet aux entités organisationnelles et coder la gestion de ces entités spécifiques. Plusieurs méthodes override devront être implémentées comme : doCreateUnit, doModifyUnit, doRemoveUnit, moveSubTreefr.paris.lutece.plugins.unittree.service.unit.IUnitAttributeService.java
IUnitAttributeComponentInterface à implémenter si l’on souhaite ajouter des attributs spécifiques à son projet aux entités organisationnelles et coder l’écran spécifique associé. Plusieurs méthodes override devront être implémentées comme : fillModel, getTemplate. Il faudra aussi créer le template associé (avec les attributs spécifiques ajoutés).fr.paris.lutece.plugins.unittree.web.unit.IUnitAttributeComponent.java

Autres ressources (liens utiles, github, etc)

Liens utiles

Pour aller plus loin…

On peut associer le plugin-unittree aux composants suivants pour ajouter des fonctionnalités complémentaires :

Plugins/ModulesFonctionnalité
module-forms-unitreePermet d’affecter à des entités les réponses à un formulaire en fonction de la valeur de la réponse à une question.
module-workflow-unittreePermet d’assigner des ressources de workflow à une entité organisationnelle.