module TokenAuthenticateMe::Concerns::Models::Passwordable

Public Instance Methods

attempting_to_change_password?() click to toggle source
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 78
def attempting_to_change_password?
  (!password.blank? || !password_confirmation.blank?) && password_digest_changed?
end
create_reset_token!() click to toggle source
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 38
def create_reset_token!
  # rubocop:disable Lint/Loop
  begin
    self.reset_password_token = SecureRandom.hex
  end while self.class.exists?(reset_password_token: reset_password_token)

  self.reset_password_token_exp = password_expiration_hours.hours.from_now
  save!
end
current_password_correct() click to toggle source
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 56
def current_password_correct
  user_with_old_password = self.class.find_by_id(id)
  errors.add(:current_password, 'is required to change email and/or password') if current_password.blank? # rubocop:disable Metrics/LineLength
  errors.add(:current_password, 'is incorrect') unless user_with_old_password.authenticate(current_password)
end
current_password_required?() click to toggle source
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 62
def current_password_required?
  !new_record? && (email_changed? || attempting_to_change_password?) && !password_resetting?
end
ignore_password_length_validations?() click to toggle source
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 70
def ignore_password_length_validations?
  false
end
password=(unencrypted_password) click to toggle source
Calls superclass method
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 52
def password=(unencrypted_password)
  super(unencrypted_password) unless unencrypted_password.blank? && !password_required?
end
password_expiration_hours() click to toggle source
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 48
def password_expiration_hours
  8
end
password_required?() click to toggle source
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 74
def password_required?
  attempting_to_change_password? || new_record?
end
password_resetting?() click to toggle source
# File lib/token_authenticate_me/concerns/models/passwordable.rb, line 66
def password_resetting?
  reset_password_token_changed? && reset_password_token_exp_changed?
end