On 14 October 2011 15:53, Dave Castellano <[email protected]> wrote:
> I am having a problem finding the best way to make a "before_save
> :encrypt_password" conditional.
>
> I have to at times update user model attributes but each time I do this
> the password is reencrypted because of the above.  I need to
> differentiate between when the user is first logging in and the password
> does need to be encrypted, and when they are already logged in and the
> "before_save :encrypt_password" should not be called.

I would typically do something like this upon setting the attribute -
so it gets saved as normal as necessary. Create your own method, and
handle the encryption in there. Something along the lines of:

# user.rb
def password=(value)
  attributes[:password] = FunkyEncryptionModule::encrypt(value)
end


I *actually* generally extract passwords out to their own model (if I
don't use an authorization gem), with a belongs_to :user association,
so the Password object stores all its own information regarding
hashed-value/salt/expiry-date/etc.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to