Droits de haut niveau
Creation d'un SuperAdministrateur
Donner à un utilisateur le role superadmin
pré requis
avoir le rôle superadmin ou le rôle du créateur de la base de données
actions
ce rôle permet de donner/modifier/supprimer le droit applicationCreator
flowchart LR
databaseCreator[Créateur de la base de données] --> |oui| canGiveIsAdmin[Donne le rôle superAdmin]
databaseCreator[Créateur de la base de données] --> |non| isNotDatabaseCreator[a le rôle superAdmin]
isNotDatabaseCreator -->|oui| canGiveIsAdmin
isNotDatabaseCreator -->|non| NotSuperAdminException[Envoie de l'exception NotSuperAdminException]
Creation d'une créateur d'application
pré requis
avoir le rôle superadmin ou le rôle du créateur de la base de données pour créer un nouveau droit avoir le rôle applicationCreator pour déléguer ses propres droits de créateur d'application (on peut déléguer ce rôle partiellement)
actions
ce rôle permet de donner/modifier/supprimer le droit applicationCreator. L'utilisateur cible devient un applicationCreator avec une restriction à certains nom d'application. Ajout dans la tableau authorizations de l'utilisateur + policy. Si le poseur de droits n'est pas superadmin (juste applicationCreator) alors on vérifie que la restriction est bien une restriction du poseur de droits avant de l'octroyer à la cible.
flowchart LR
databaseCreator[Créateur de la base de données] --> |oui| canGiveIsApplicationCreator[Donne le rôle applicationCreator]
databaseCreator[Créateur de la base de données] --> |non| isNotDatabaseCreator[a le rôle superAdmin]
isNotDatabaseCreator -->|oui| canGiveIsApplicationCreator
isNotDatabaseCreator -->|non| applicationCreator[a le role applicationCreator]
applicationCreator -->|non| notApplicationCreatorRightsException[Envoie de l'exception NotApplicationCreatorRightsException]
applicationCreator -->|oui| isApplicationCreator[a une autorisation pour le pattern]
isApplicationCreator -->|oui| canGiveIsApplicationCreator
isApplicationCreator -->|non| notApplicationCreatorRightsException