Reset user password (Admin only)
POST/company/users/change/:id
Permet à un administrateur de réinitialiser le mot de passe de n'importe quel utilisateur de l'entreprise, en générant un nouveau mot de passe aléatoire et en l'envoyant par email.
Objectif
Faciliter la récupération de l'accès des utilisateurs par les administrateurs lorsqu'ils oublient leur mot de passe ou ont besoin d'aide.
Cas d'utilisation
- Un utilisateur a oublié son mot de passe et demande de l'aide à l'admin
- Un admin a besoin de rétablir l'accès d'un utilisateur
- Réinitialisation de sécurité à la demande de l'utilisateur
Authentification & Autorisation
- Requiert un JWT valide (middleware m.isLoged)
- Requiert le rôle admin ou dev (middleware m.isAdmin)
Comportement
- Si aucun mot de passe n'est fourni, en génère un automatiquement avec tools.generatePass()
- Le mot de passe généré comporte 8 caractères avec majuscules, minuscules et chiffres
- Hache le mot de passe avec model.getPassword()
- Envoie un email avec le nouveau mot de passe en utilisant mail.sendNewPass()
- Vérifie que l'utilisateur appartient à l'entreprise de l'admin
Validations
- L'utilisateur doit exister
- L'utilisateur doit appartenir à l'entreprise de l'admin
- Si un mot de passe est fourni dans le corps de la requête, il est utilisé à la place d'une génération
Gestion du mot de passe
- Si un mot de passe est fourni dans le corps de la requête, il est utilisé
- Si aucun n'est fourni, il est généré automatiquement : 8 caractères, majuscules, minuscules, chiffres
- Le mot de passe est haché avec model.getPassword()
- Il est envoyé par email à l'utilisateur dans sa langue configurée (user.i18n)
Notes
- Différent de POST /changePass où l'utilisateur change son propre mot de passe
- Ce point de terminaison est destiné à ce que l'admin réinitialise le mot de passe d
Request
Responses
- 200
- 401
- 403
- 404
Mot de passe réinitialisé avec succès et envoyé par e-mail.
Non autorisé (rôle admin ou dev requis)
Interdit (l'utilisateur n'est pas administrateur)
Utilisateur non trouvé.