Pular para o conteúdo principal

Devise: Atualizando dados do usuário sem informar a senha

No projeto Rails que estou trabalhando estou utilizando o Devise para autenticação, e tive a necessidade de deixar o usuário alterar seus dados sem precisar informar sua senha.

Após testar algumas opções do how-to do Devise, a melhor forma de fazer isso foi sobrescrever o método update_with_password, adicionando ao model o seguinte método:

  def update_with_password(params={}) 
    if params[:password].blank? 
      params.delete(:password) 
      params.delete(:password_confirmation) if params[:password_confirmation].blank? 
    end 
    update_attributes(params) 
  end

Feito isso, está pronto. Agora os usuário poderão alterar seus dados sem precisar informar a senha, e para alterar a senha basta informar a nova senha e a confirmação da nova senha.

Comentários

Postagens mais visitadas deste blog

Linux de bolso

Comecei a faculdade (ciência da computação, escolha meio obvia) esse ano e logo de cara fiquei sabendo que iriamos utilizar linux nos computadores da faculdade, o que achei muito bom. Mas chegando no laboratório de informática vi que estava instalado o CentOS , se não me engano é baseado no Red Hat Enterprise (e não Fedora, como tinha postado antes). Até ai tudo bem, nada contra em usar uma distribuição que não conheço, o problema foi quando percebi que o sistema estava da forma como foi instalado, sem nenhuma configuração extra. Primeiro percebi que a resolução estava em 800x600, e não havia como mudar a resolução para 1024x768, que julgo ser ideal de ser usada. Isso até que podia ser suportado, mas ao tentar usar meu pendrive ele não foi reconhecido automaticamente, ou pelo menos não foi montado automaticamente, e depois tentando monsta-lo manualmente, o sistema só dá permição para o root montar dispositivos, e a senha do root, como não podia ser diferente, não temos acesso. Com es...

Jquery-rails - Problema ao cancelar uma confirmação

No projeto que estou desenvolvendo agora me deparei com o seguinte problema: ao clicar em um link para excluir um registro, clicando em cancelar no diálogo de confirmação a exclusão era executada. Solução: Substituir o arquivo rails.js pelo arquivo mais recente https://github.com/rails/jquery-ujs/blob/master/src/rails.js .