module Devise::Models::SmsConfirmable::ClassMethods
Public Instance Methods
find_by_unconfirmed_phone_with_errors(attributes = {})
click to toggle source
# File lib/devise_sms_confirmable/models/sms_confirmable.rb, line 239 def find_by_unconfirmed_phone_with_errors(attributes = {}) attributes = attributes.slice(*sms_confirmation_keys).permit!.to_h if attributes.respond_to? :permit unconfirmed_required_attributes = sms_confirmation_keys.map { |k| k == :phone ? :unconfirmed_phone : k } unconfirmed_attributes = attributes.symbolize_keys unconfirmed_attributes[:unconfirmed_phone] = unconfirmed_attributes.delete(:phone) find_or_initialize_with_errors(unconfirmed_required_attributes, unconfirmed_attributes, :not_found) end
send_sms_confirmation_instructions(attributes={})
click to toggle source
# File lib/devise_sms_confirmable/models/sms_confirmable.rb, line 215 def send_sms_confirmation_instructions(attributes={}) confirmable = find_by_unconfirmed_phone_with_errors(attributes) if sms_reconfirmable unless confirmable.try(:persisted?) confirmable = find_or_initialize_with_errors(sms_confirmation_keys, attributes, :not_found) end confirmable.resend_sms_confirmation_instructions if confirmable.persisted? confirmable end
sms_confirm_by_token(phone, sms_confirmation_token, context: nil)
click to toggle source
# File lib/devise_sms_confirmable/models/sms_confirmable.rb, line 224 def sms_confirm_by_token(phone, sms_confirmation_token, context: nil) confirmable = find_first_by_auth_conditions(phone: phone, sms_confirmation_token: sms_confirmation_token) unless confirmable confirmation_digest = Devise.token_generator.digest(self, :sms_confirmation_token, sms_confirmation_token) confirmable = find_or_initialize_with_errors([:phone, :sms_confirmation_token], { phone: phone, sms_confirmation_token: confirmation_digest }, :invalid) end # TODO: replace above lines with # confirmable = find_or_initialize_with_error_by(:sms_confirmation_token, sms_confirmation_token) # after enough time has passed that Devise clients do not use digested tokens confirmable.sms_confirm(context: context) if confirmable.persisted? confirmable end