Reset user password (Admin only)
POST/company/users/change/:id
Permite que um administrador redefina a senha de qualquer usuário da empresa, gerando uma nova senha aleatória e enviando-a por e-mail.
Objetivo
Facilitar a recuperação de acesso dos usuários por parte dos administradores quando esquecem sua senha ou precisam de ajuda.
Casos de Uso
- Usuário esqueceu sua senha e pede ajuda ao administrador
- Administrador precisa restabelecer o acesso de um usuário
- Redefinição de segurança por solicitação do usuário
Autenticação e Autorização
- Requer JWT válido (middleware m.isLoged)
- Requer função de administrador ou desenvolvedor (middleware m.isAdmin)
Comportamento
- Se nenhuma senha for fornecida, gera uma automaticamente com tools.generatePass()
- A senha gerada tem 8 caracteres com letras maiúsculas, minúsculas e números
- Faz o hash da senha com model.getPassword()
- Envia e-mail com a nova senha usando mail.sendNewPass()
- Verifica se o usuário pertence à empresa do administrador
Validações
- O usuário deve existir
- O usuário deve pertencer à empresa do administrador
- Se uma senha for fornecida, ela é usada em vez de gerar uma nova
Tratamento da Senha
- Se uma senha for fornecida no corpo da requisição, ela é usada
- Se não for fornecida, é gerada automaticamente: 8 caracteres, letras maiúsculas, minúsculas e números
- A senha é transformada em hash com model.getPassword()
- É enviada por e-mail ao usuário no idioma configurado (user.i18n)
Observações
- Diferente de POST /changePass, onde o usuário altera sua própria senha
- Este endpoint é para que o administrador redefina a senha de outro usuário
Request
Responses
- 200
- 401
- 403
- 404
Senha redefinida com sucesso e enviada por e-mail
Não autorizado (é necessário o papel de administrador ou desenvolvedor)
Proibido (usuário não é administrador)
Usuário não encontrado