Alteração e expiração de senhas do sistema Consignação
Data de elaboração | 28/02/2023 |
---|---|
Responsável pelo estudo |
|
Equipe do estudo |
|
Alvo | Consignação |
Origem |
Implementação: Alteração e expiração de senhas do sistema de Consignação |
Objetivo |
O presente estudo visa analisar e propor a funcionalidade para alterar e expirar senhas de usuários do sistema Consignação |
Documentação correlata | |
Observações | O presente estudo pretende também pretende levantar as Historias dos cards para a Sprint |
1. Objetivo
O presente estudo visa analisar e propor a funcionalidade para alterar e expirar senhas de usuários do sistema Consignação.
1.1 JUSTIFICATIVA
O sistema não conta com uma ferramenta automatizada em que o próprio usuário realize a alteração de senha. Também é necessário criar um mecanismo para expirar a senha.
1.2 RESULTADOS ESPERADOS
Espera-se que, após este estudo, seja possível identificar uma forma para que o próprio usuário realize a alteração de senha.
2. Introdução
Há a necessidade de alteração de senha por parte do usuário, pois este item não está funcionando.
3. Desenvolvimento - Reset e expiração de senhas dos usuários
3.1 CENÁRIO ATUAL
No momento que foi realizado o estudo, somente o usuário MASTER realizava a alteração de senhas dentro do sistema.
Existia uma funcionalidade para alteração de senhas, porém a mesma parou de funcionar e foi retirada do front-end do sistema.
Ao analisar o código fonte, foi possível identificar os passos para recuperação de senha:
Ação | Parâmetros | Descrição |
Método de solicitar a recuperação a senha |
login e email |
- É gerado um token de confirmação - É criado um registro no banco na tabela FuncionarioRecuperacaoSenha - É criado e enviado o email para recuperação de senha |
Método de alterar a senha |
token e novaSenha |
- É buscado um funcionário por um token - Caso o funcionário seja encontrado, é realizada a alteração da senha. |
Observações:
Classes no BackEnd: FuncionarioRecuperacaoSenhaControlador e FuncionarioRecuperacaoSenhaServico
No momento que foi realizado o estudo, a tela de Recuperar a senha não estava funcionando.
3.2 SOLUÇÃO
Após a análise do problema, propomos a seguinte solução:
1) Reset de senhas
1 - Criar ou recuperar a tela para a solicitação do reset de senhas
2 - Alterar o envio do email para utilizar o sistema Hermes.
3 - Criar umaou recuperar a tela para realizar o reset de senhas
2) Expiração de senha
1 - Criar um job no CaveiraJob para expirar a senha após um tempo determinado
2 - Mostrar tela informando que a senha foi expirada com link para redirecionamento para o reset de senhas (após o login do usuário)
3.3 IMPLEMENTAÇÃO E HISTÓRIAS DE USUÁRIOS
Para aplicar a solução acima será necessário as seguintes histórias de usuários:
O que? | Pontos | Regras | Produto |
Alteração de senhas | |||
Criar ou recuperar a tela para a solicitação |
Nesta tela solicitar usuário e e-mail Obs: Deve haver um link na tela de login para esta tela. |
Consignação | |
Consumir o sistema Hermes para envio do e-mail de |
8 | No e-mail haverá um link para o reset de senhas | Consignação |
Criar |
5 |
Após o envio do email, é necessária uma tela para digitar a nova senha.
O backend irá: - Alterar a senha no banco - Atualizar o campo "data de expiração" e "expirado". |
Consignação |
Expiração de senha | |||
Bloquear login de usuários com senha expirada | 5 |
- Criar campo "Data de expiração" - Criar campo boleano "Expirado" |
Consignação |
Criar rota para expirar as senhas e criar um job no CaveiraJob para consumir essa rota | 8 |
- Criar rota para verificar quais logins estão com a data de expiração expiradas |
Consignação |
Mostrar tela informando que a senha foi expirada com link para redirecionamento para o reset de senhas (após o login do usuário) | 5 |
|
Consignação |
3.4 POSSÍVEIS IMPEDIMENTOS
A linguagem utilizada no projeto é nova para o time.
4. Conclusão
Conclui-se que para a devida implementação destas melhorias, o time poderá, além consultar este documento, consultar a PO e os demais integrantes da SETIC, pois objetiva-se a funcionalidade de resetar a senha dos usuários.