Reset user password (Admin only)
POST/company/users/change/:id
Permite a un administrador resetear la contraseña de cualquier usuario de la compañía, generando una nueva contraseña aleatoria y enviándola por email.
Objective
Facilitar la recuperación de acceso de usuarios por parte de administradores cuando olvidan su contraseña o necesitan ayuda.
Use Cases
- Usuario olvidó su contraseña y pide ayuda al admin
- Admin necesita restablecer acceso de un usuario
- Reset de seguridad por solicitud del usuario
Authentication & Authorization
- Requiere JWT válido (middleware m.isLoged)
- Requiere rol admin o dev (middleware m.isAdmin)
Behavior
- Si no se proporciona password, genera una automáticamente con tools.generatePass()
- La contraseña generada tiene 8 caracteres con mayúsculas, minúsculas y números
- Hashea la contraseña con model.getPassword()
- Envía email con la nueva contraseña usando mail.sendNewPass()
- Verifica que el usuario pertenezca a la compañía del admin
Validations
- Usuario debe existir
- Usuario debe pertenecer a la compañía del admin
- Si se proporciona password, se usa esa en lugar de generar
Password Handling
- Si se proporciona password en el body, se usa esa
- Si no se proporciona, se genera automáticamente: 8 caracteres, mayúsculas, minúsculas, números
- La contraseña se hashea con model.getPassword()
- Se envía por email al usuario en su idioma configurado (user.i18n)
Notes
- Diferente de POST /changePass donde el usuario cambia su propia contraseña
- Este endpoint es para que el admin resetee la contraseña de otro usuario
Request
Responses
- 200
- 401
- 403
- 404
Contraseña reseteada exitosamente y enviada por email
No autorizado (se requiere rol admin o dev)
Prohibido (usuario no es administrador)
Usuario no encontrado