module Sorcery::Model::Submodules::ResetPassword::InstanceMethods
Public Instance Methods
change_password(new_password, raise_on_failure: false)
click to toggle source
Clears token and tries to update the new password for the user.
# File lib/sorcery/model/submodules/reset_password.rb, line 127 def change_password(new_password, raise_on_failure: false) clear_reset_password_token send(:"#{sorcery_config.password_attribute_name}=", new_password) sorcery_adapter.save raise_on_failure: raise_on_failure end
change_password!(new_password)
click to toggle source
# File lib/sorcery/model/submodules/reset_password.rb, line 133 def change_password!(new_password) change_password(new_password, raise_on_failure: true) end
deliver_reset_password_instructions!()
click to toggle source
Generates a reset code with expiration and sends an email to the user.
# File lib/sorcery/model/submodules/reset_password.rb, line 99 def deliver_reset_password_instructions! mail = false config = sorcery_config # hammering protection return false if config.reset_password_time_between_emails.present? && send(config.reset_password_email_sent_at_attribute_name) && send(config.reset_password_email_sent_at_attribute_name) > config.reset_password_time_between_emails.seconds.ago.utc self.class.sorcery_adapter.transaction do generate_reset_password_token! mail = send_reset_password_email! unless config.reset_password_mailer_disabled end mail end
generate_reset_password_token!()
click to toggle source
Generates a reset code with expiration
# File lib/sorcery/model/submodules/reset_password.rb, line 89 def generate_reset_password_token! config = sorcery_config attributes = { config.reset_password_token_attribute_name => TemporaryToken.generate_random_token, config.reset_password_email_sent_at_attribute_name => Time.now.in_time_zone } attributes[config.reset_password_token_expires_at_attribute_name] = Time.now.in_time_zone + config.reset_password_expiration_period if config.reset_password_expiration_period sorcery_adapter.update_attributes(attributes) end
increment_password_reset_page_access_counter()
click to toggle source
Increment access_count_to_reset_password_page attribute. For example, access_count_to_reset_password_page attribute is over 1, which means the user doesn't have a right to access.
# File lib/sorcery/model/submodules/reset_password.rb, line 115 def increment_password_reset_page_access_counter sorcery_adapter.increment(sorcery_config.reset_password_page_access_count_attribute_name) end
reset_password_reset_page_access_counter()
click to toggle source
Reset access_count_to_reset_password_page attribute into 0. This is expected to be used after sending an instruction email.
# File lib/sorcery/model/submodules/reset_password.rb, line 121 def reset_password_reset_page_access_counter send(:"#{sorcery_config.reset_password_page_access_count_attribute_name}=", 0) sorcery_adapter.save end
Protected Instance Methods
clear_reset_password_token()
click to toggle source
Clears the token.
# File lib/sorcery/model/submodules/reset_password.rb, line 144 def clear_reset_password_token config = sorcery_config send(:"#{config.reset_password_token_attribute_name}=", nil) send(:"#{config.reset_password_token_expires_at_attribute_name}=", nil) if config.reset_password_expiration_period end
send_reset_password_email!()
click to toggle source
# File lib/sorcery/model/submodules/reset_password.rb, line 139 def send_reset_password_email! generic_send_email(:reset_password_email_method_name, :reset_password_mailer) end