Ir para o conteúdo principal

Alteração e expiração de senhas do sistema Consignação

Data de elaboração 28/02/2023
Responsável pelo estudo
  1. Rafael Passos dos Santos (Assessor)
Equipe do estudo
  1. André Honório de Andrade Silva (Tecnico)
  2. Gezinéia Paula da Costa (Product Owner)
  3. Emanuel Rufino Alcantara de Lima (Analista)
  4. Rafael Passos dos Santos (Assessor)
  5. Alef Carvalho (Analista)
  6. Gustavo Félix (Analista)
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:

image.png

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.

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

- Caso esteja expirado, o usuário é redirecionado para a tela que informa que a senha está expirada com link para o reset de senhas.

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 expirar e alterar a senha dos usuários.