gems-uff / sapos

SAPOS main goal is to ease the management of information related to graduate programs such as enrollments, courses, advisement, scholarships, requirements, among others.
http://gems-uff.github.io/sapos/
MIT License
29 stars 14 forks source link

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

Closed JoaoFelipe closed 3 years ago

JoaoFelipe commented 3 years ago

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 commented 3 years ago

Parece que o :validatable tem 3 confirmações

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

Não dá para forçar o logout automaticamente e voltar para a tela de login?

Leo

On Sat, Aug 7, 2021 at 10:21 AM Vanessa Braganholo @.***> wrote:

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?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/gems-uff/sapos/issues/355#issuecomment-894654445, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACKM54SJFNYWP4GZWQYMK3T3UXPBANCNFSM5BWS4BKQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

JoaoFelipe commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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

braganholo commented 3 years ago

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