Open cmayran opened 1 year ago
tickets liés :
@krichtof @tchak @LeSim @mfo @colinux voici le cahier des charges pour permettre la délégation de création d'administrateurs
avec une répartition en plusieurs tickets pour que nous puissions travailler par étapes
À votre disposition pour échanger sur le sujet :)
Bonjour, et merci pour ces tickets détaillés.
La partie récursive me semble trop compliquée. En reprenant le schéma, j'ai l'impression qu'on répond au besoin fonctionnel en assignant les gestionnaires 3,4,5,6,7 au groupe racine.
merci pour ce retour @LeSim
La partie récursive me semble trop compliquée. En reprenant le schéma, j'ai l'impression qu'on répond au besoin fonctionnel en assignant les gestionnaires 3,4,5,6,7 au groupe racine.
Oui il est tout à fait possible de faire ce schéma aussi avec la nouvelle arborescence proposée. Pour ceux justement qui n'ont pas un besoin 'infini'
Cependant, les collectivités ont justement besoin de ce côté récursive pour permettre de déléguer à leur tour la gestion des administrateurs dans un groupe inférieur ; qui lui qui pourra à son tour déléguer etc. etc.
dans mon exemple ci dessus, je précise que le gestionnaire 7 n'est pas du tout rattaché au gestionnaire 6 (donc il n'est pas géré par le gestionnaire 6) dans un mono groupe il le serait. or on cherche justement à se détacher
de cela pour faire des entités spécifiques. Voici ce que cela pourrait donner pour une collectivité (sur l'instance Adullact)
on en discute en direct ?
/manager/groupes/
via un bouton création groupe
/manager/groupe/new
/manager/groupes/
via un bouton création un gestionnaire
:
ajouter un gestionnaire
/manager/users/idUser/emails
/manager/groupe/
/manager/gestionnaires/idGestionnaire
manager/gestionnaires
, je peux visualiser la liste des gestionnaires
manager/administrateurs
/manager/gestionnaires/<idGestionnaire>
/manager/groupes/
manager/administrateurs
)
/manager/gestionnaires/<idGestionnaire>
--> titre email / lien usager / lien instructeur / lien administrateur / user / created at / updated at / (reprise de l'existant sur les autres pages)/manager/gestionnaires/
, je peux voir le nom des groupes de mon gestionnaire et sur la page /manager/gestionnaires/<idGestionnaire>
gestionnaire
voir son compte gestionnaire
+ lien OU l'info Pas gestionnaire !
sur les pages suivantes :
manager/user/<IdUser>
manager/instructeur/<idInstructeur>
manager/administrateur/<idAdministrateur>
/manager/gestionnaires/<idGestionnaire>
manager/user/IdUser
vers manager/gestionnaires/IdUser
groupe
? tri actifmanager/administrateur/IdUser
vers manager/gestionnaires/IdUser
manager/administrateur/IdUser
vers manager/gestionnaires/IdUser
stocké :
déduit :
même principe que l'instructeur :
Bonjour,
Vous venez d’être nommé gestionnaire sur staging-demarches-simplifiees.staging.plunge.cloud.
Votre compte a été créé pour l'adresse email cecilia.mayran@adullact.org. Pour l’activer, je vous invite à cliquer sur le lien suivant : https://staging-demarches-simplifiees.staging.plunge.cloud/users/activate?token=
Bonne journée, L’équipe staging-demarches-simplifiees.staging.plunge.cloud
même qu'un administrateur lambda. reprendre le template existant et faire le lien
Le
gestionnaire
est un nouveau rôle / profil, comme le rôle instructeur et le rôle administrateur.
/gestionnaire/
mes groupes
/groupes/
(listing complet des groupes dont je suis gestionnaire en direct)
/gestionnaire/groupes/<idGroupe1>
/gestionnaire/groupes/<idGroupe2>
voir plus
voir plus
, page d'affichage de l'arborescence entière /gestionnaire/groupes/idGroupe/arborescence ?? url à faire validermêmes actions que 4.3 (à créer pour les tests d'acceptation)
à détailler adapter ce qui a été fait du super admin pour le tableau de bord gestionnaire
visualiser la liste des groupes enfants directs
possibilité de créer un nouveau groupe /gestionnaire/groupes/idGroupe
en cliquant sur le bouton nouveau groupe
créer le groupe
/gestionnaire/
et accessible /gestionnaire/groupes
/gestionnaire/groupesidGroupe
et je peux reprendre les actions 4.3 (ajout de gestionnaire / d'administrateurs)TO DO à détailler
Mon groupe
sur la page du tableau de bord admin/procedures
/admin/mon-groupe
lors du clic sur l'onglet Mon groupe
découpage pour le lot 1
Le
gestionnaire
est un nouveau rôle / profil, comme le rôle instructeur et le rôle administrateur.
- un gestionnaire peut être associé à un ou plusieurs groupes
- un groupe peut avoir plusieurs gestionnaires et même 0 gestionnaires (dans ce cas, le gestionnaire du groupe supérieur aura la main dessus)
- un administrateur n'appartient qu'à un seul groupe
- un groupe peut avoir 0 administrateurs
- il existe un seul groupe racine
stocké :
déduit :
même principe que l'instructeur :
Bonjour,
Vous venez d’être nommé gestionnaire du groupe
nom du groupe
surnom de l'instance
.Votre compte a été créé pour l'adresse email ***@xxx.fr. Pour l’activer, je vous invite à cliquer sur le lien suivant (lien avec token) exemple : https://demarches-simplifiees.fr/users/activate?token=
Bonne journée, L’équipe
nom de l'instance
manager/gestionnaires
/manager/groupe_administrateurs/
ajouter un gestionnaire
--> le groupe racine existe déjà (via afterParty) ou initialiser à l'ajout du 1er gestionnaire./manager/users/idUser/emails
/gestionnaire/
/gestionnaire/
(header et footer DS, mais page vide ou minimaliste)manager/gestionnaires
, je peux visualiser la liste des gestionnaires
manager/administrateurs
)/manager/gestionnaires/<idGestionnaire>
manager/administrateurs
)/manager/gestionnaires/<idGestionnaire>
--> titre email / lien usager / lien instructeur / lien administrateur / user / created at / updated at / (reprise de l'existant sur les autres pages)/manager/gestionnaires/
, je peux voir le nom des groupes de mon gestionnaire et sur la page /manager/gestionnaires/<idGestionnaire>
🛑 reversé dans le lot 5gestionnaire
voir son compte gestionnaire
+ lien OU l'info Pas gestionnaire !
sur les pages suivantes :manager/user/<IdUser>
manager/instructeur/<idInstructeur>
manager/administrateur/<idAdministrateur>
/manager/gestionnaires/<idGestionnaire>
manager/user/<IdUser>
vers manager/gestionnaires/<idGestionnaire>
/gestionnaire/
mes groupes
/groupes/
(listing complet des groupes dont je suis gestionnaire en direct)/gestionnaire/groupes/<idGroupe1>
/gestionnaire/groupes/<idGroupe2>
/gestionnaire/groupes/<idGroupe>
si pas d'administrateur
manger\administrateur
groupe
? tri actifvisualiser la liste des groupes enfants directs
possibilité de créer un nouveau groupe /gestionnaire/groupes/idGroupe
en cliquant sur le bouton nouveau groupe
créer le groupe
/gestionnaire/
et accessible /gestionnaire/groupes
/gestionnaire/groupesidGroupe
et je peux reprendre les actions 4.3 (ajout de gestionnaire / d'administrateurs)Mon groupe
sur la page du tableau de bord admin/procedures
/admin/mon-groupe
lors du clic sur l'onglet Mon groupe
manager
/manager/groupes/
via un bouton création groupe
/manager/groupe/new
/manager/groupes/
via un bouton création un gestionnaire
:/manager/groupe/
/manager/gestionnaires/idGestionnaire
administrateurs
manager
/manager/gestionnaires/<idGestionnaire>
, je peux voir le nom des groupes de mon gestionnaire/manager/gestionnaires/
, je peux voir le nom des groupes de mon gestionnairegestionnaire
voir plus
voir plus
, page d'affichage de l'arborescence entière /gestionnaire/groupes/idGroupe/arborescence ?? url à faire validerconnexion OTP
ETQ super-admin, déléguer la création des comptes administrateurs à des "gestionnaires de groupe"
expression de besoin initiale par l'Adullact : ticket Github #6587 et ticket #7804
Contexte de la demande
Démarches Simplifiées (DS) dispose d'une gestion de "profils" ou "rôles" offrant à chacun d'eux des capacités d'action distinctes au sein de l'application.
A l’heure actuelle, les "profils" DS sont les suivants :
Il est possible qu’un compte soit lié à différents profils. Par exemple, un administrateur peut aussi être usager ou instructeur sur des procédures différentes.
Architecture actuelle
Pour les instances DS comme celle de l'Adullact, dans un contexte de mutualisation avec des structures regroupant plusieurs collectivités (ex: une métropole, une communauté de communes) et des Universités avec de nombreux sous-structures (départements de recherche, services, ...), la création des comptes administrateurs DS est beaucoup trop chronophage pour un super-admin tel que l'Adullact.
Comportement attendu
Pouvoir déléguer la création des comptes administrateurs DS.
1. Nouveau concept de groupe
Le concept de groupe est un concept qui n'existe pas encore dans DS.
Le groupe
a pour objectif de pouvoir contenir des gestionnaires et des administrateurs définis et organisés de manière hiérarchiquevoir ticket #9113
2. Nouveau profil "Gestionnaire de groupe et d’administrateurs"
Un nouveau profil serait intégré à ceux déjà existants dans l'application. Il s'agit du "Gestionnaire de groupe et d’administrateurs" et ce, au même titre qu'un administrateur ou un instructeur. Comprendre : je peux être gestionnaire ET administrateur ET instructeur.
C'est à ce nouveau profil que le super admin pourra déléguer la création des administrateurs.
Le gestionnaire pourra créer des nouveaux administrateurs dans sa sphère d'influence. Sphère étant le ou les groupes auquels il a une gérance.
voir ticket #9114 détails du rôle de gestionnaire et des écrans
3. La délégation de création d'administrateurs
Le gestionnaire pourra à son tour créer des groupes et nommer d'autres gestionnaires et cela, de manière infinie.
4. Nouvelle architecture
Nouveau schéma avec une arborescence pour les groupes.
Vocabulaire
5. Changements pour le super-admin
Ticket #9112
6. Changements pour les administrateurs
Ticket #9115
Note technique
Il serait intéressant de discuter avec la DINUM de la pertinence d'activer l'extension ltree de PostgreSQL pour le requêtage en profondeur dans une arborescence.
Une autre option serait de faire des requêtes récursives à l'aide de WITH RECURSIVE.