Skip to main content

Détail et modification d'un utilisateur

Récupérer un utilisateur​

Endpoint​

GET /api/users/{id}

Réponse​

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john.doe@example.com",
"nom": "Doe",
"prenom": "John",
"telephone": "+245955123456",
"role": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"nom": "Spécialiste TM",
"code": "ROLE_TM_SPECIALIST",
"permissions": ["transferts.cycles_view", "transferts.paiements_view"]
},
"isActive": true,
"twoFactorEnabled": false,
"lastLoginAt": "2025-03-15T10:30:00+00:00",
"failedLoginAttempts": 0,
"regions": [
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"nom": "Oio",
"code": "OIO"
}
],
"createdAt": "2025-01-01T00:00:00+00:00",
"updatedAt": "2025-03-15T10:30:00+00:00"
}
}

Modifier un utilisateur​

Endpoint​

PUT /api/users/{id}

ou

PATCH /api/users/{id}

Corps de la requête​

{
"nom": "Doe",
"prenom": "John Updated",
"telephone": "+245955123457",
"role_id": "550e8400-e29b-41d4-a716-446655440003",
"regions": ["550e8400-e29b-41d4-a716-446655440002", "550e8400-e29b-41d4-a716-446655440004"]
}

Paramètres modifiables​

ParamètreTypeDescription
nomstringNom de famille
prenomstringPrénom
telephonestringNuméro de téléphone
role_idUUIDID du nouveau rôle
regionsarrayIDs des régions affectées
caution

L'email ne peut pas être modifié après création. Pour changer l'email, créer un nouveau compte.


Supprimer un utilisateur​

Endpoint​

DELETE /api/users/{id}

Réponse​

{
"success": true,
"message": "Utilisateur supprimé"
}
warning

La suppression est définitive. Préférez désactiver l'utilisateur pour conserver l'historique.


Activer/Désactiver un utilisateur​

Endpoint​

POST /api/users/{id}/toggle-status

Réponse​

{
"success": true,
"message": "Utilisateur désactivé",
"data": {
"isActive": false
}
}

Débloquer un compte​

Endpoint​

POST /api/users/{id}/unlock

Réservé à ROLE_DB_SPECIALIST. Remet à zéro les tentatives de connexion échouées et lève le verrouillage.

Réponse​

{
"success": true,
"message": "Compte débloqué et tentatives réinitialisées",
"data": { "wasLocked": true, "previousFailedAttempts": 5 }
}

Mot de passe​

L'API ne permet pas à un administrateur de choisir le mot de passe d'un autre utilisateur.

EndpointDescription
POST /api/auth/forgot-password{"email": "…"} : envoie un lien de réinitialisation par e-mail
GET /api/auth/verify-reset-token/{token}Vérifie le lien
POST /api/auth/reset-passwordPose le nouveau mot de passe avec le jeton reçu
POST /api/profile/change-passwordL'utilisateur connecté change son propre mot de passe

En dernier recours, un administrateur serveur utilise la commande app:reset-user-password.


Obtenir les permissions effectives​

Retourne toutes les permissions dont dispose un utilisateur (via son rôle).

Endpoint​

GET /api/users/{id}/permissions

Réponse​

{
"success": true,
"data": {
"role": "ROLE_TM_SPECIALIST",
"permissions": [
"transferts.cycles_view",
"transferts.cycles_create",
"transferts.paiements_view",
"transferts.paiements_export",
"registre.menages_view",
"registre.beneficiaires_view"
]
}
}

Réservé à ROLE_DB_SPECIALIST. Les permissions viennent uniquement du rôle : PUT/PATCH /api/users/{id}/permissions répond toujours 403 en indiquant le rôle à modifier, et POST /api/users/{id}/permissions/reset supprime d'anciennes permissions personnalisées héritées de la version précédente.