Ignorando transients em determinadas validates/saves
29/11/2012 18:36
0
Boa tarde pessoal,

Gostaria de saber se consigo salvar/validar um obj sem verificar os campos transient em determinadas situações.

Tenho um campo password criptografado em bcrypt e um transient senha2 para realizar algumas validações, ambos presentes em uma classe usuário, cujo qual possue outros atributos.

Ao salvar esse obj, inicializo uma thread de envio de e-mail, o usuário recebe um email de confirmação e clica no link presente no corpo do mesmo.

Após clicar eu marco o atributo "ativo" desse usuário como true, MAS, tenho que atualizar o obj (obj.save()), o que me leva a validar o campo senha2... sendo que a senha que tenho em mãoes agora (password) é completamente criptografada em bcrypt.

Não sei e realmente não quero fazer um decode da senha, devido ao custo e a segurança do sistema... já encontrei uma solução meio gambiarrada que foi a criacao de um transient chamado de confirmacaoEmail... mas é nojenta a solução.

Grato,

dertyu765
Tags: transiet, validate, save, ignorar, grails


0
Olá!

A menos que possua alguma especificidade, poderias usar o Spring Security (e seus plugins) para facilitar a implementação de segurança. Pelas suas necessidades, expressas no questionamento, Spring Security Core + Spring Security UI devem ser eficazes.

Não sei se entendi corretamente, mas acredito que o método isDirty() deve servir para o que deseja.


def beforeUpdate(){
if(isDirty(password){
// encode password
}
}


Para ver outras utilizações, podes dar uma olhada em: SGE - IFAL.
29/11/2012 20:53


0
Rsrs... Eu esqueci de deixar a referência: Grails Documentation: isDirty.

Basicamente, o método isDirty(<field>) verifica se o campo foi modificado e retorna um boolean.
29/11/2012 20:58



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto