Skip to main content

Gestion des rôles

Lister les rôles​

Endpoint​

GET /api/roles

Paramètres de requête​

ParamètreTypeRequisDescription
isActivebooleanNonFiltrer par statut actif
searchstringNonRecherche par nom ou code

Réponse​

{
"success": true,
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"nom": "Administrateur",
"code": "ROLE_ADMIN",
"description": "Accès complet au système",
"isActive": true,
"isSystem": true,
"usersCount": 3,
"permissionsCount": 50
},
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"nom": "Spécialiste TM",
"code": "ROLE_TM_SPECIALIST",
"description": "Gestion des transferts monétaires",
"isActive": true,
"isSystem": false,
"usersCount": 12,
"permissionsCount": 15
}
]
}

Créer un rôle​

Endpoint​

POST /api/roles

Corps de la requête​

{
"nom": "Agent de terrain",
"code": "ROLE_FIELD_AGENT",
"description": "Collecte de données sur le terrain",
"permissions": [
"registre.menages_view",
"registre.menages_create",
"registre.beneficiaires_view",
"geo.localites_view"
]
}

Paramètres​

ParamètreTypeRequisDescription
nomstringOuiNom du rôle (affiché)
codestringOuiCode unique (ROLE_XXX)
descriptionstringNonDescription du rôle
permissionsarrayNonListe des permissions

Réponse​

{
"success": true,
"message": "Rôle créé avec succès",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440010",
"code": "ROLE_FIELD_AGENT"
}
}

Modifier un rôle​

Endpoint​

PUT /api/roles/{id}

Réservé à ROLE_ADMIN. Tous les champs sont optionnels : code, nom, description, permissions, niveau, couleur, isActive. Le niveau et l'activation d'un rôle système ne sont pas modifiables.

Corps de la requête​

{
"permissions": [
"registre.menages_view",
"registre.menages_create",
"registre.menages_edit",
"registre.beneficiaires_view"
]
}

permissions remplace la liste entière.

Réponse​

{
"success": true,
"message": "Rôle mis à jour avec succès",
"data": {
"id": "…",
"code": "AGENT_REGISTRE",
"nom": "Agent registre",
"permissions": ["registre.menages_view", "…"]
}
}

POST /api/roles/{id}/duplicate crée une copie d'un rôle existant.


Supprimer un rôle​

Endpoint​

DELETE /api/roles/{id}

Contraintes​

  • Les rôles système (isSystem: true) ne peuvent pas être supprimés
  • Un rôle avec des utilisateurs assignés ne peut pas être supprimé

Réponse en cas d'erreur​

{
"success": false,
"message": "Impossible de supprimer ce rôle: 12 utilisateurs y sont assignés"
}

Liste des permissions disponibles​

Endpoint​

GET /api/roles/permissions/available

Réservé à ROLE_ADMIN.

Réponse​

{
"success": true,
"data": {
"permissions": {
"registre.menages_view": "Voir les ménages",
"registre.menages_edit": "Modifier des ménages",
"transferts.cycles_view": "Voir les transferts"
},
"byModule": {
"registre": {
"registre.menages_view": "Voir les ménages",
"registre.menages_edit": "Modifier des ménages"
},
"transferts": {
"transferts.cycles_view": "Voir les transferts"
}
}
}
}

Les codes suivent le format module.action. Les permissions effectives de l'utilisateur connecté se lisent avec GET /api/me/permissions.