From 0821324221ae7bf0a7bdfadb66ed7eee93aca3f7 Mon Sep 17 00:00:00 2001 From: Rajat Date: Mon, 30 Jun 2025 13:43:46 +0530 Subject: [PATCH] fix for password archival and expiration after rails-7 upgrade --- lib/devise_security_extension/models/password_archivable.rb | 4 ++-- lib/devise_security_extension/models/password_expirable.rb | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) 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