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.
eg
if !signed_in?
before_save :encrypt_password
end
This does not work but Is there a rails variable that gets set when
logged in I can use?
Thanks,
DC
--
Posted via http://www.ruby-forum.com/.
--
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 rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
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.