Module: Devision::Models::Recoverable::ClassMethods
- Defined in:
- lib/devision/models/recoverable.rb
Instance Method Summary collapse
-
#reset_password_by_token(attributes = {}) ⇒ Object
Attempt to find a user by its reset_password_token to reset its password.
Instance Method Details
#reset_password_by_token(attributes = {}) ⇒ Object
Attempt to find a user by its reset_password_token to reset its password. If a user is found and token is still valid, reset its password and automatically try saving the record. If not user is found, returns a new user containing an error in reset_password_token attribute. Attributes must contain reset_password_token, password and confirmation
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/devision/models/recoverable.rb', line 106 def reset_password_by_token(attributes={}) original_token = attributes[:reset_password_token] reset_password_token = Devision.token_generator.digest(self, :reset_password_token, original_token) recoverable = find_or_initialize_with_error_by(:reset_password_token, reset_password_token) if recoverable.persisted? if recoverable.reset_password_period_valid? recoverable.reset_password!(attributes[:password], attributes[:password_confirmation]) else recoverable.errors.add(:reset_password_token, :expired) end end recoverable.reset_password_token = original_token recoverable end |