lib/devise/models/authenticatable.rb in devise-0.7.2 vs lib/devise/models/authenticatable.rb in devise-0.7.3
- old
+ new
@@ -45,11 +45,11 @@
def self.included(base)
base.class_eval do
extend ClassMethods
extend SessionSerializer
- attr_reader :password
+ attr_reader :password, :old_password
attr_accessor :password_confirmation
end
end
# Regenerates password salt and encrypted password each time password is set.
@@ -60,12 +60,23 @@
self.password_salt = Devise.friendly_token
self.encrypted_password = password_digest(@password)
end
end
- # Verifies whether an incoming_password (ie from login) is the user password.
+ # Verifies whether an incoming_password (ie from sign in) is the user password.
def valid_password?(incoming_password)
password_digest(incoming_password) == encrypted_password
+ end
+
+ # Update record attributes when :old_password matches, otherwise returns
+ # error on :old_password.
+ def update_with_password(params={})
+ if valid_password?(params[:old_password])
+ update_attributes(params)
+ else
+ errors.add(:old_password, :invalid)
+ false
+ end
end
protected
# Digests the password using the configured encryptor.