Module: Sso::Doorkeeper::ApplicationControllerMixin
- Extended by:
- ActiveSupport::Concern
- Includes:
- Logging
- Defined in:
- lib/sso/doorkeeper/application_controller_mixin.rb
Instance Method Summary
collapse
Methods included from Logging
#debug, #error, #fatal, #info, #warn
Instance Method Details
#access_grant_created(token_id) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# 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 ⇒ Object
35
36
37
38
39
40
|
# 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 ⇒ Object
11
12
13
14
15
|
# 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 ⇒ Object
17
18
19
|
# File 'lib/sso/doorkeeper/application_controller_mixin.rb', line 17
def warden_user_session
warden.session(:user)
end
|