Module: Concerns::ModelPasswordReset::ClassMethods

Includes:
Pillowfort::ModelFinder, Pillowfort::TokenGenerator
Defined in:
app/models/pillowfort/concerns/model_password_reset.rb

Instance Method Summary collapse

Methods included from Pillowfort::ModelFinder

#find_by_email_case_insensitive

Methods included from Pillowfort::TokenGenerator

#friendly_token, #secure_compare

Instance Method Details

#find_and_validate_password_reset_token(email, token) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/models/pillowfort/concerns/model_password_reset.rb', line 45

def find_and_validate_password_reset_token(email, token)
  return false if email.blank? || token.blank?

  transaction do
    if resource = find_by_email_case_insensitive(email)
      if resource.password_token_expired?
        return false
      else
        if secure_compare(resource.password_reset_token, token)
          yield resource if block_given?
        end
      end
    end
  end
end