module Devise::Models::ParanoidVerification

PasswordExpirable takes care of change password after

Public Instance Methods

generate_paranoid_code() click to toggle source
# File lib/devise_security_extension/models/paranoid_verification.rb, line 30
def generate_paranoid_code
  update_without_password paranoid_verification_code: Devise.verification_code_generator.call(), paranoid_verification_attempt: 0
end
need_paranoid_verification?() click to toggle source
# File lib/devise_security_extension/models/paranoid_verification.rb, line 9
def need_paranoid_verification?
  !!paranoid_verification_code
end
paranoid_attempts_remaining() click to toggle source
# File lib/devise_security_extension/models/paranoid_verification.rb, line 26
def paranoid_attempts_remaining
  Devise.paranoid_code_regenerate_after_attempt - paranoid_verification_attempt
end
verify_code(code) click to toggle source
# File lib/devise_security_extension/models/paranoid_verification.rb, line 13
def verify_code(code)
  attempt = paranoid_verification_attempt

  if (attempt += 1) >= Devise.paranoid_code_regenerate_after_attempt
    generate_paranoid_code
  elsif code == paranoid_verification_code
    attempt = 0
    update_without_password paranoid_verification_code: nil, paranoid_verified_at: Time.now, paranoid_verification_attempt: attempt
  else
    update_without_password paranoid_verification_attempt: attempt
  end
end