Aller au contenu

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

  1. 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.
  2. 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.
  3. 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é

  1. Cliquez sur Nouveau rôle : renseignez un nom et une description.
  2. Le rôle est créé sans aucune permission. Ouvrez ensuite l'action Gérer les permissions (icône clé) sur ce rôle.
  3. 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.
  4. Exemple concret déjà en place dans certains tenants : les rôles ACCOUNTANT (comptable) et CFO (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é

  1. Un rôle personnalisé peut être renommé, sa description modifiée, ou ses permissions ajustées à tout moment.
  2. 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

  1. Ouvrez Administration → Utilisateurs (/dashboard/admin/users — cette page combine la gestion des fiches employés et l'attribution des rôles).
  2. 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.
  3. 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ème
  • POST /admin/roles — création d'un rôle personnalisé
  • PUT/DELETE /admin/roles/{roleId} — modification/suppression (rejetée côté service si systemRole ou si des utilisateurs sont encore assignés)
  • GET/PUT /admin/roles/{roleId}/permissions — lecture/remplacement complet de la matrice de permissions du rôle
  • GET /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'utilisateur
  • POST /admin/users/{userId}/roles — attribuer un rôle supplémentaire
  • DELETE /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.

Voir aussi