module Sso::Doorkeeper::ApplicationControllerMixin

Public Instance Methods

access_grant_created(token_id) click to toggle source
# File lib/sso/doorkeeper/application_controller_mixin.rb, line 21
def access_grant_created(token_id)
  debug { "Wisper#access_grant_created grant - #{token_id}" }
  oauth_grant = ::Doorkeeper::AccessGrant.find(token_id)

  generate_sso_session if warden_user_session["sso_session_id"].blank?
  sso_session = Sso::Session.find(warden_user_session["sso_session_id"])

  debug { "Sso::Session.update_master_with_grant - #{sso_session.id.inspect}, #{oauth_grant.inspect}" }
  sso_session.clients.find_or_create_by!(access_grant_id: oauth_grant.id, application_id: oauth_grant.application_id)
rescue => e
  sso_session.try(:logout)
  raise
end
generate_sso_session() click to toggle source
# File lib/sso/doorkeeper/application_controller_mixin.rb, line 35
def generate_sso_session
  debug { "Sso:Session doesn't exist for user #{user.id.inspect}. Generate new one" }
  attributes = {  ip: request.ip, agent: request.user_agent }
  sso_session = Sso::Session.generate_master(user, attributes)
  warden_user_session["sso_session_id"] = sso_session.id.to_s
end
subscribe_to_grant_creation() { || ... } click to toggle source
# File lib/sso/doorkeeper/application_controller_mixin.rb, line 11
def subscribe_to_grant_creation
  Wisper.subscribe(self) do
    yield
  end
end
warden_user_session() click to toggle source
# File lib/sso/doorkeeper/application_controller_mixin.rb, line 17
def warden_user_session
  warden.session(:user)
end