demarches-simplifiees / demarches-simplifiees.fr

Dématérialiser et simplifier les démarches administratives
https://www.demarches-simplifiees.fr
GNU Affero General Public License v3.0
193 stars 88 forks source link

ETQ super-admin, déléguer la création des comptes administrateurs à des "gestionnaires de groupe" #9111

Open cmayran opened 1 year ago

cmayran commented 1 year ago

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

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
  2. Nouveau profil "Gestionnaire de groupe et d’administrateurs"
  3. La délégation de création d'administrateurs
  4. Nouvelle Architecture
  5. Changements pour le super-admin
  6. Changements pour les administrateurs

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érarchique

voir 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.

De ce fait, une arborescence est nécessaire afin de comprendre à quel niveau je me situe (que je soit gestionnaire ou administrateur) et quels sont mes groupes parents et mes groupes enfants.

4. Nouvelle architecture

Nouveau schéma avec une arborescence pour les groupes.

architecture_groupe

Note : Contrairement au gestionnaire, l'administrateur appartient à un seul groupe dans l'arborescence.

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.


trackingAdullactContrib trackingAdullactARNiaContrib

cmayran commented 1 year ago

tickets liés :

cmayran commented 1 year ago

@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 :)

LeSim commented 1 year ago

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.

cmayran commented 1 year ago

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)

gestionnaire collectivité

on en discute en direct ?

cmayran commented 1 year ago

USER Stories

ETQ super admin (US 1)

page groupe

page gestionnaires

page utilisateurs

page administrateurs

page instructeurs

le groupe (US 2)

ajout des objets du groupe

stocké :

déduit :

Templates des mails reçus (US 3)

US 3.1 Template notification ajout de gestionnaire

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

US 3.2 Template notification ajout administrateur dans un groupe

même qu'un administrateur lambda. reprendre le template existant et faire le lien

ETQ gestionnaire (US 4)

Le gestionnaire est un nouveau rôle / profil, comme le rôle instructeur et le rôle administrateur.

connexion 4.1

tableau de bord 4.2

détail d'un groupe 4.3

groupe enfant 4.4 gestion

mêmes actions que 4.3 (à créer pour les tests d'acceptation)

création nouveau groupe / groupe enfant depuis l'interface DS 4.5

à détailler adapter ce qui a été fait du super admin pour le tableau de bord gestionnaire

administrateurs déjà existants dans l'app 4.6

administrateur sorti d'un groupe et qui reste existant dans l'appli 4.7

TO DO à détailler

ETQ Administrateur (US 5)

tableau de bord 5.1

Page Mon groupe 5.2

cmayran commented 1 year ago

Implémentation du LOT 1

découpage pour le lot 1

Groupe / Gestionnaire

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 :

Template mail

même principe que l'instructeur :

Bonjour,

Vous venez d’être nommé gestionnaire du groupe nom du groupe sur nom 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

User Stories


cmayran commented 1 year ago

Implémentation LOT 2



cmayran commented 11 months ago

implémentation lot 3



cmayran commented 11 months ago

implémentation Lot 4

manager


administrateurs

cmayran commented 8 months ago

implémentation lot 5

manager