diff --git a/lib/devise/hooks/lockable.rb b/lib/devise/hooks/lockable.rb index 22d0428e..d713153f 100644 --- a/lib/devise/hooks/lockable.rb +++ b/lib/devise/hooks/lockable.rb @@ -2,6 +2,6 @@ # This is only triggered when the user is explicitly set (with set_user) Warden::Manager.after_set_user :except => :fetch do |record, warden, options| if record.respond_to?(:failed_attempts) && warden.authenticated?(options[:scope]) - record.update_attribute(:failed_attempts, 0) + record.update_attribute(:failed_attempts, 0) unless record.failed_attempts.zero? end end diff --git a/lib/devise/models/rememberable.rb b/lib/devise/models/rememberable.rb index b9e43386..ff6c2ee7 100644 --- a/lib/devise/models/rememberable.rb +++ b/lib/devise/models/rememberable.rb @@ -50,7 +50,7 @@ module Devise def remember_me!(extend_period=false) self.remember_token = self.class.remember_token if generate_remember_token? self.remember_created_at = Time.now.utc if generate_remember_timestamp?(extend_period) - save(:validate => false) + save(:validate => false) if self.changed? end # If the record is persisted, remove the remember token (but only if