Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validação de Senha de usuário não está funcionando #355

Closed
JoaoFelipe opened this issue Aug 6, 2021 · 8 comments
Closed

Validação de Senha de usuário não está funcionando #355

JoaoFelipe opened this issue Aug 6, 2021 · 8 comments
Assignees
Milestone

Comments

@JoaoFelipe
Copy link
Contributor

Atualmente é possível definir uma senha diferente da confirmação e o SAPOS aceita (tanto na interface quanto no form de resetar senha).

Aparentemente, o devise não está configurado como :validatable. Vou configurar e ver se tem alguma outra implicação. Se tiver, userei validates_confirmation_of

@JoaoFelipe JoaoFelipe added the bug label Aug 6, 2021
@JoaoFelipe JoaoFelipe self-assigned this Aug 6, 2021
JoaoFelipe added a commit that referenced this issue Aug 6, 2021
@JoaoFelipe
Copy link
Contributor Author

Parece que o :validatable tem 3 confirmações

  • Presença de email (já temos separado)
  • Presença de senha com número mínimo de caracteres
  • Confirmação de senha

A parte de presença de senha deu problema usando o active scaffold: não consegui editar usuário sem alterar senha. Então adicionei só a confirmação de senha com o validades_confirmation_of. Podem homologar o branch bugfixes

@braganholo
Copy link
Contributor

A validação funcionou, mas a mensagem de erro está estranha:

"Digite a senha novamente não está igual". Poderia ser algo como "As senhas digitadas não são iguais. Por favor, digite-as novamente."

@braganholo
Copy link
Contributor

Além disso, após trocar a senha pela interface, não consigo mais fazer nada no sistema. Tenho que fazer logout e login novamente. Como será que poderíamos resolver isso? Talvez colocar uma mensagem pedindo ao usuário para fazer login novamente?

@leomurta
Copy link
Member

leomurta commented Aug 7, 2021 via email

@JoaoFelipe
Copy link
Contributor Author

No rails, o nome do atributo ("Digite a senha novamente") precisa aparecer no início. Tem como tirar essa limitação com uma gem (https://github.com/nanamkim/custom-err-msg), mas ela não recebe atualização há 6 anos e só é instalável por git. Será que vale a pena?

Uma alternativa é mudar o nome do campo para "Confirmação de senha". Com isso a mensagem fica "Confirmação de senha não está igual". Ou poderia ser "Confirmação de senha não está igual à senha. Por favor, digite-as novamente.". Que tal?

Vou ver esse problema da troca de senha pela interface agora.

@JoaoFelipe
Copy link
Contributor Author

Parece que o problema da alteração de senha era justamente que o Devise faz o logout automático ao trocar a senha, mas o active scaffold só atualiza o formulário parcialmente, então tudo deixa de funcionar ao invés de ir para a tela inicial. Corrigi mantendo o usuário logado (apenas na sessão atual) após a troca de senha. Se o usuário estiver logado em outro lugar, ainda deve desconectar.

Também alterei o atributo/mensagem para "Confirmação de senha não está igual à Senha". Podem testar outra vez

@leomurta
Copy link
Member

leomurta commented Aug 8, 2021

Obrigado @JoaoFelipe . @braganholo , coloquei em homologação. Você poderia testar novamente?

@braganholo braganholo added the OK label Aug 9, 2021
@braganholo
Copy link
Contributor

Testei e está ok. Pode colocar em produção.

@leomurta leomurta added the 4.6.7 label Aug 9, 2021
@leomurta leomurta added this to the 4.6.x milestone Sep 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants