Gestion des rôles
Lister les rôles
Endpoint
GET /api/roles
Paramètres de requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
isActive | boolean | Non | Filtrer par statut actif |
search | string | Non | Recherche 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ètre | Type | Requis | Description |
|---|---|---|---|
nom | string | Oui | Nom du rôle (affiché) |
code | string | Oui | Code unique (ROLE_XXX) |
description | string | Non | Description du rôle |
permissions | array | Non | Liste 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}
}
}
}
}