Saltar al contenido principal

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

Contraseña reseteada exitosamente y enviada por email