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 cenário atual, propomos as seguintes ações para o pleno funcionamento:
Reset de senhas
1) Criar ou recuperar a tela para a solicitação do reset de senhas
Atualmente a tela não está funcionando, porém o código está no projeto. É preciso identificar por que ao clicar nessa tela ela redireciona para o Index. Após o ajuste nesta tela, é preciso verificar se ela está fazendo o Post com os parâmetros para a rota da API.
2) Mudança na rota de alteração de senhas
Ao alterar a senha, os campos Data de Expiração e Expirado devem ser atualizadas
3) Alterar o envio do email para utilizar o sistema Hermes
O sistema está utilizando um SMTP próprio. É preciso criar uma estrutura para o consumo da API do Hermes (API de e-mail) para enviar o e-mail ao usuário com o Link em que será cadastrada a nova senha.
3)4) Criar ou recuperar a tela para realizar o reset de senhas
Nesta tela, que será acessada pelo link enviado pelo email, o usuário irá cadastrar a nova senha. Também é preciso verificar se ela está fazendo o Post com os parâmetros para a rota da API.
Expiração de senha
1) Criar campos na tabela Funcionario referente à expiração de senhas
"Data de expiração": Data em que expirará a senha.
"Expirado": campo que identifica que o login está expirado ou não.
2) Bloquear login de usuários com senha expirada
Ao realizar o login, o sistema identificará se a senha está expirada. Caso esteja, o usuário é redirecionado para a tela que informa que a senha está expirada com link para o reset de senhas.
3) Expirar senha
- Criar rota para expirar as senhas de acordo com a data de expiração.
- Criar um job no CaveiraJob para consumir essa rota.
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 de alteração de senhas | 5 |
Nesta tela solicitar usuário e e-mail Obs: Deve haver um link na tela de login para esta tela. Consumir a rota para incluir a solicitação de recuperação de senha |
Consignação |
Mudança na rota de alteração de senhas | 3 |
Ao alterar a senha, os campos Data de Expiração e Expirado devem ser atualizadas |
Consignação |
Consumir o sistema Hermes para envio do e-mail de alteração. | 8 |
No e-mail haverá um link para o reset de senhas -Há um exemplo de consumo no Mr.Day |
Consignação |
Criar ou recuperar a tela para realizar o reset de senhas | 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 | |||
Criar campos na tabela Funcionario referente à expiração de senhas
|
5 |
"Data de expiração": Data em que expirará a senha. "Expirado": campo que identifica que o login está expirado ou não.
|
Consignação |
Bloquear login de usuários com senha expirada | 5 |
- Consultar campo Expirado - |
Consignação |
Expirar senha | 5 |
- Criar rota para expirar as senhas de acordo com a data de expiração - Criar um job no CaveiraJob para consumir essa rota |
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 resetarexpirar e alterar a senha dos usuários.