Aller au contenu principal

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 les permissions d'un rôle

Endpoint

PUT /api/roles/{id}/permissions

Corps de la requête

{
"permissions": [
"registre.menages_view",
"registre.menages_create",
"registre.menages_edit",
"registre.beneficiaires_view",
"registre.beneficiaires_create",
"geo.localites_view",
"geo.regions_view"
]
}

Réponse

{
"success": true,
"message": "Permissions mises à jour",
"data": {
"permissionsCount": 7,
"permissions": [
"registre.menages_view",
"registre.menages_create",
"registre.menages_edit",
"registre.beneficiaires_view",
"registre.beneficiaires_create",
"geo.localites_view",
"geo.regions_view"
]
}
}

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/settings/permissions

Réponse

{
"success": true,
"data": {
"modules": [
{
"id": "registre",
"label": "Registre",
"actions": [
{"id": "menages_view", "label": "Voir les ménages", "fullKey": "registre.menages_view"},
{"id": "menages_create", "label": "Créer des ménages", "fullKey": "registre.menages_create"},
{"id": "menages_edit", "label": "Modifier des ménages", "fullKey": "registre.menages_edit"},
{"id": "menages_delete", "label": "Supprimer des ménages", "fullKey": "registre.menages_delete"}
]
},
{
"id": "transferts",
"label": "Transferts",
"actions": [
{"id": "cycles_view", "label": "Voir les cycles", "fullKey": "transferts.cycles_view"},
{"id": "cycles_create", "label": "Créer des cycles", "fullKey": "transferts.cycles_create"}
]
}
],
"rolePermissions": {
"ROLE_ADMIN": {
"registre": {"menages_view": true, "menages_create": true, "menages_edit": true},
"transferts": {"cycles_view": true, "cycles_create": true}
}
}
}
}