diff --git a/lib/devise_security_extension/models/password_archivable.rb b/lib/devise_security_extension/models/password_archivable.rb index 3913cfd8..6e16e7e5 100644 --- a/lib/devise_security_extension/models/password_archivable.rb +++ b/lib/devise_security_extension/models/password_archivable.rb @@ -16,8 +16,8 @@ def validate_password_archive # validate is the password used in the past def password_archive_included? - unless deny_old_passwords.is_a? Fixnum - if deny_old_passwords.is_a? TrueClass and archive_count > 0 + unless deny_old_passwords.is_a?(Integer) + if deny_old_passwords == true && archive_count > 0 self.deny_old_passwords = archive_count else self.deny_old_passwords = 0 diff --git a/lib/devise_security_extension/models/password_expirable.rb b/lib/devise_security_extension/models/password_expirable.rb index 95184ded..4fdd9bd9 100644 --- a/lib/devise_security_extension/models/password_expirable.rb +++ b/lib/devise_security_extension/models/password_expirable.rb @@ -13,7 +13,7 @@ module PasswordExpirable # is an password change required? def need_change_password? - if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float + if self.expire_password_after.respond_to?(:ago) self.password_changed_at.nil? or self.password_changed_at < self.expire_password_after.seconds.ago else false @@ -22,7 +22,7 @@ def need_change_password? # set a fake datetime so a password change is needed and save the record def need_change_password! - if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float + if self.expire_password_after.respond_to?(:ago) need_change_password self.save(:validate => false) end @@ -30,7 +30,7 @@ def need_change_password! # set a fake datetime so a password change is needed def need_change_password - if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float + if self.expire_password_after.respond_to?(:ago) self.password_changed_at = self.expire_password_after.seconds.ago end