Utilisateurs & rôles¶
À quoi ça sert¶
Ce module permet à un administrateur de gérer le modèle de permissions du tenant : consulter et personnaliser les rôles disponibles (au-delà des rôles système fournis par défaut), définir précisément les permissions accordées à chaque rôle personnalisé, et attribuer un ou plusieurs rôles à chaque utilisateur.
Prérequis¶
Prérequis
- Modules sous licence :
HR - Permissions :
roles.manage,users.manage - Rôles :
ORG_ADMIN
Comment ça marche¶
1. Comprendre le modèle de rôles¶
- Ouvrez Administration → Rôles (
/dashboard/admin/roles) : la liste affiche tous les rôles du tenant, avec pour chacun le nombre de permissions accordées et le nombre d'utilisateurs qui le portent. - Un rôle système (badge « Rôle système », icône cadenas) est un modèle global partagé par tous les tenants (ex.
ORG_ADMIN,HR_MANAGER,MANAGER,RECRUITER) : ses permissions sont en lecture seule, on ne peut ni les modifier ni le supprimer. - Un rôle personnalisé (badge « Personnalisé ») est propre au tenant, créé par un administrateur pour répondre à un besoin métier spécifique.
2. Créer un rôle personnalisé¶
- Cliquez sur Nouveau rôle : renseignez un nom et une description.
- Le rôle est créé sans aucune permission. Ouvrez ensuite l'action Gérer les permissions (icône clé) sur ce rôle.
- La matrice de permissions est regroupée par module (congés, organisation, utilisateurs, rôles, configuration, audit, employé, contrat, évaluation, comptabilité, fournitures, réservation, recrutement, administration…) ; cochez chaque permission individuellement, puis Enregistrer.
- Exemple concret déjà en place dans certains tenants : les rôles
ACCOUNTANT(comptable) etCFO(directeur financier), créés avec l'ensemble des permissions du module comptabilité correspondant à leur périmètre (facturation, notes de frais, paie, déclarations, configuration comptable pour le CFO).
3. Modifier ou supprimer un rôle personnalisé¶
- Un rôle personnalisé peut être renommé, sa description modifiée, ou ses permissions ajustées à tout moment.
- La suppression n'est possible que si aucun utilisateur ne porte ce rôle — le bouton est désactivé et affiche le nombre d'utilisateurs concernés dans ce cas ; retirez d'abord le rôle de tous les utilisateurs concernés.
4. Attribuer un rôle à un utilisateur¶
- Ouvrez Administration → Utilisateurs (
/dashboard/admin/users— cette page combine la gestion des fiches employés et l'attribution des rôles). - Depuis la fiche d'un utilisateur, ouvrez l'action Rôles : la liste des rôles actuellement attribués s'affiche, avec la possibilité d'en ajouter un nouveau (parmi tous les rôles système et personnalisés du tenant) ou d'en retirer un.
- Un utilisateur peut porter plusieurs rôles simultanément — ses permissions effectives sont l'union de toutes les permissions de tous ses rôles.
Qui peut faire quoi¶
| Permission requise | Rôles concernés |
|---|---|
roles.manage |
ORG_ADMIN |
users.manage |
ORG_ADMIN |
| Permission | Donne accès à |
|---|---|
roles.manage |
Créer/modifier/supprimer un rôle personnalisé, gérer la matrice de permissions d'un rôle, attribuer/retirer un rôle à un utilisateur |
users.manage |
Gérer les fiches utilisateurs (voir Employés) — distinct de la gestion des rôles eux-mêmes |
| Rôle système | Accès |
|---|---|
ORG_ADMIN |
Toutes les actions (permission globale, y compris roles.manage) |
Aucun rôle système autre que ORG_ADMIN ne détient roles.manage par défaut
La gestion des rôles est une action sensible : seul ORG_ADMIN la détient nativement. Un tenant qui souhaite déléguer cette responsabilité (par exemple à un rôle RH dédié) doit créer un rôle personnalisé incluant roles.manage, ou l'ajouter explicitement à un rôle existant.
Détails techniques
Entités : Role (id, tenantId nullable — NULL signifie rôle système global partagé par tous les tenants —, name, description, systemRole boolean), RolePermission (association rôle ↔ code de permission), Permission (catalogue des codes disponibles).
Endpoints (RoleAdminController, base /admin/roles, tous gated roles.manage) :
GET /admin/roles— liste des rôles du tenant + rôles systèmePOST /admin/roles— création d'un rôle personnaliséPUT/DELETE /admin/roles/{roleId}— modification/suppression (rejetée côté service sisystemRoleou si des utilisateurs sont encore assignés)GET/PUT /admin/roles/{roleId}/permissions— lecture/remplacement complet de la matrice de permissions du rôleGET /admin/roles/permissions/all— catalogue complet des permissions disponibles, pour construire la matrice à cocher
Endpoints (UserRoleAdminController, base /admin/users/{userId}/roles, tous gated roles.manage) :
GET /admin/users/{userId}/roles— rôles actuellement attribués à l'utilisateurPOST /admin/users/{userId}/roles— attribuer un rôle supplémentaireDELETE /admin/users/{userId}/roles/{roleId}— retirer un rôle
Modèle multi-tenant des rôles : un rôle système (tenant_id IS NULL) est un gabarit partagé, défini une fois pour toute la plateforme via une migration Flyway (ex. V110 seed initial ORG_ADMIN/HR_MANAGER/MANAGER, V203 ajoute RECRUITER) ; un rôle personnalisé (tenant_id renseigné) n'existe que dans un tenant donné et peut être créé/modifié librement via l'API ci-dessus, sans migration — c'est le mécanisme utilisé pour des rôles métier comme ACCOUNTANT/CFO (voir V185).
Résolution des permissions effectives : au chargement de session, PermissionService.loadPermissions(userId) calcule l'union de toutes les permissions de tous les rôles de l'utilisateur ; le résultat est mis en cache (invalidé à chaque changement de rôle ou de permissions de rôle).
Cas d'erreur et FAQ¶
Pourquoi ne puis-je pas modifier les permissions du rôle MANAGER ?
C'est un rôle système global, partagé par tous les tenants de la plateforme — ses permissions sont fixées par la plateforme et non modifiables au niveau d'un tenant. Créez un rôle personnalisé si vous avez besoin d'un profil de permissions différent.
Comment créer un rôle « Comptable » avec un accès limité à la facturation ? Créez un rôle personnalisé, puis dans la matrice de permissions, ne cochez que les permissions du module comptabilité nécessaires (ex. lecture/gestion des factures) sans cocher les permissions de paie ou de configuration comptable.
Pourquoi le bouton de suppression d'un rôle est-il grisé ? Le rôle est encore attribué à un ou plusieurs utilisateurs. Retirez-le de leurs fiches (Administration → Utilisateurs → Rôles) avant de pouvoir le supprimer.
Un utilisateur peut-il cumuler plusieurs rôles ? Oui, ses permissions effectives sont l'union de toutes les permissions de tous les rôles qui lui sont attribués — il n'y a pas de rôle unique par utilisateur.
Où attribue-t-on un rôle à un nouvel employé ? Depuis Administration → Utilisateurs, sur la fiche de l'employé concerné, via l'action Rôles — l'attribution de rôle n'a pas d'écran dédié séparé, elle se fait directement depuis la gestion des utilisateurs.