class SSO::Server::Doorkeeper::ResourceOwnerAuthenticator

Attributes

controller[R]

Public Class Methods

new(controller:) click to toggle source
# File lib/sso/server/doorkeeper/resource_owner_authenticator.rb, line 13
def initialize(controller:)
  @controller = controller
end
to_proc() click to toggle source
# File lib/sso/server/doorkeeper/resource_owner_authenticator.rb, line 9
def self.to_proc
  proc { ::SSO::Server::Doorkeeper::ResourceOwnerAuthenticator.new(controller: self).call }
end

Public Instance Methods

call() click to toggle source
# File lib/sso/server/doorkeeper/resource_owner_authenticator.rb, line 17
def call
  debug { 'Detected "Authorization Code Grant" flow. Checking resource owner authentication...' }

  unless warden
    fail ::SSO::Server::Errors::WardenMissing, 'Please use the Warden middleware.'
  end

  if current_user
    debug { "Yes, User with ID #{current_user.inspect} has a session." }
    current_user
  else
    debug { 'No, no User is logged in right now. Initializing authentication procedure...' }
    warden.authenticate! :password
  end
end
current_user() click to toggle source
# File lib/sso/server/doorkeeper/resource_owner_authenticator.rb, line 37
def current_user
  warden.user
end
warden() click to toggle source
# File lib/sso/server/doorkeeper/resource_owner_authenticator.rb, line 33
def warden
  controller.request.env['warden']
end