class GraphqlDevise::Mutations::Login
Public Instance Methods
resolve(email:, password:) { |resource| ... }
click to toggle source
# File lib/graphql_devise/mutations/login.rb, line 11 def resolve(email:, password:) resource = find_resource( :email, get_case_insensitive_field(:email, email) ) if resource && active_for_authentication?(resource) if invalid_for_authentication?(resource, password) raise_user_error(I18n.t('graphql_devise.sessions.bad_credentials')) end new_headers = set_auth_headers(resource) controller.sign_in(:user, resource, store: false, bypass: false) yield resource if block_given? context[:current_resource] = resource if context[:current_resource].nil? { authenticatable: resource, credentials: new_headers } elsif resource && !active_for_authentication?(resource) if locked?(resource) raise_user_error(I18n.t('graphql_devise.mailer.unlock_instructions.account_lock_msg')) else raise_user_error(I18n.t('graphql_devise.sessions.not_confirmed', email: resource.email)) end else raise_user_error(I18n.t('graphql_devise.sessions.bad_credentials')) end end
Private Instance Methods
active_for_authentication?(resource)
click to toggle source
# File lib/graphql_devise/mutations/login.rb, line 50 def active_for_authentication?(resource) !resource.respond_to?(:active_for_authentication?) || resource.active_for_authentication? end
invalid_for_authentication?(resource, password)
click to toggle source
# File lib/graphql_devise/mutations/login.rb, line 43 def invalid_for_authentication?(resource, password) valid_password = resource.valid_password?(password) (resource.respond_to?(:valid_for_authentication?) && !resource.valid_for_authentication? { valid_password }) || !valid_password end
locked?(resource)
click to toggle source
# File lib/graphql_devise/mutations/login.rb, line 54 def locked?(resource) resource.respond_to?(:locked_at) && resource.locked_at end