module Devise::Models::PasswordDisallowsFrequentChanges
Public Instance Methods
password_recent?()
click to toggle source
# File lib/devise/secure_password/models/password_disallows_frequent_changes.rb, line 30 def password_recent? last_password = previous_passwords.first last_password&.fresh?(self.class.password_minimum_age) end
validate_password_frequent_change()
click to toggle source
# File lib/devise/secure_password/models/password_disallows_frequent_changes.rb, line 18 def validate_password_frequent_change if encrypted_password_changed? && password_recent? error_string = I18n.t( 'secure_password.password_disallows_frequent_changes.errors.messages.password_is_recent', timeframe: precise_distance_of_time_in_words(self.class.password_minimum_age) ) errors.add(:base, error_string) end errors.count.zero? end
Protected Instance Methods
after_resource_initialized()
click to toggle source
# File lib/devise/secure_password/models/password_disallows_frequent_changes.rb, line 52 def after_resource_initialized raise ConfigurationError, 'invalid type for password_minimum_age' \ unless self.class.password_minimum_age.is_a?(::ActiveSupport::Duration) end
before_resource_initialized()
click to toggle source
# File lib/devise/secure_password/models/password_disallows_frequent_changes.rb, line 37 def before_resource_initialized return if self.class.respond_to?(:password_previously_used_count) raise ConfigurationError, <<-ERROR.strip_heredoc The password_disallows_frequent_changes module depends on the password_disallows_frequent_reuse module. Verify that you have added both modules to your model, for example: devise :database_authenticatable, :registerable, :password_disallows_frequent_reuse, :password_disallows_frequent_changes ERROR end