module PasswordReusePolicy::InstanceMethods

Private Instance Methods

password_present?() click to toggle source
# File lib/password_reuse_policy/instance_methods.rb, line 4
def password_present?
  send(PasswordReusePolicy::Configuration.password_field_name).present?
end
set_last_used_passwords() click to toggle source
# File lib/password_reuse_policy/instance_methods.rb, line 8
def set_last_used_passwords
  n = PasswordReusePolicy::Configuration.number_of_passwords_cannot_be_used
  return false if n < 1

  encryption = PasswordReusePolicy::Configuration.encryption
  new_password = encryption.hexdigest public_send(PasswordReusePolicy::Configuration.password_field_name)

  if self.last_used_passwords.values.include? new_password
    self.errors.add(PasswordReusePolicy::Configuration.error_field_name, "Password can't be same as last #{n} passwords")
    return false
  else
    set_new_password_hash_with new_password, n
  end
end
set_new_password_hash_with(new_password, n) click to toggle source
# File lib/password_reuse_policy/instance_methods.rb, line 23
def set_new_password_hash_with new_password, n
  used_passwords = (self.last_used_passwords || {}).to_a
  used_passwords.unshift ["1", new_password]
  used_passwords[1..-1].each { |used_password| used_password[0] = used_password[0].to_i + 1 }
  used_passwords = used_passwords.take n
  self.last_used_passwords = used_passwords.to_h
end