Module: Sorcery::Model::Submodules::ResetPassword::InstanceMethods
- Defined in:
- lib/sorcery/model/submodules/reset_password.rb
Instance Method Summary collapse
-
#change_password!(new_password) ⇒ Object
Clears token and tries to update the new password for the user.
-
#deliver_reset_password_instructions! ⇒ Object
generates a reset code with expiration and sends an email to the user.
Instance Method Details
#change_password!(new_password) ⇒ Object
Clears token and tries to update the new password for the user.
93 94 95 96 97 |
# File 'lib/sorcery/model/submodules/reset_password.rb', line 93 def change_password!(new_password) clear_reset_password_token self.send(:"#{sorcery_config.password_attribute_name}=", new_password) save end |
#deliver_reset_password_instructions! ⇒ Object
generates a reset code with expiration and sends an email to the user.
79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/sorcery/model/submodules/reset_password.rb', line 79 def deliver_reset_password_instructions! config = sorcery_config # hammering protection return if config.reset_password_time_between_emails && self.send(config.reset_password_email_sent_at_attribute_name) && self.send(config.reset_password_email_sent_at_attribute_name) > config.reset_password_time_between_emails.ago.utc self.send(:"#{config.reset_password_token_attribute_name}=", TemporaryToken.generate_random_token) self.send(:"#{config.reset_password_token_expires_at_attribute_name}=", Time.now.utc + config.reset_password_expiration_period) if config.reset_password_expiration_period self.send(:"#{config.reset_password_email_sent_at_attribute_name}=", Time.now.utc) self.class.transaction do self.save!(:validate => false) generic_send_email(:reset_password_email_method_name, :reset_password_mailer) end end |