Class: Sso::Session
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Sso::Session
show all
- Includes:
- Logging
- Defined in:
- app/models/sso/session.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Logging
#debug, #error, #fatal, #info, #warn
Class Method Details
.by_access_token(token) ⇒ Object
34
35
36
37
|
# File 'app/models/sso/session.rb', line 34
def by_access_token(token)
oauth_token = ::Doorkeeper::AccessToken.by_token(token)
with_token_id(oauth_token.id)
end
|
.generate_master(user, options) ⇒ Object
39
40
41
42
43
44
45
46
|
# File 'app/models/sso/session.rb', line 39
def generate_master(user, options)
attributes = ActionController::Parameters.new(options).permit(:ip, :agent, :location)
sso_session = self.new( owner: user )
sso_session.clients.build(attributes)
debug { "Sso::Session::generate_master for #{user.inspect} - #{sso_session.inspect}" }
sso_session.save!
sso_session
end
|
.logout(sso_session_id) ⇒ Object
48
49
50
51
|
# File 'app/models/sso/session.rb', line 48
def logout(sso_session_id)
return false unless session = find_by_id(sso_session_id)
session.logout
end
|
.master_for(grant_id) ⇒ Object
22
23
24
|
# File 'app/models/sso/session.rb', line 22
def master_for(grant_id)
active.find_by!(access_grant_id: grant_id)
end
|
.with_grant_id(grant_id) ⇒ Object
30
31
32
|
# File 'app/models/sso/session.rb', line 30
def with_grant_id(grant_id)
includes(:clients).where("sso_clients.access_grant_id": grant_id)
end
|
.with_token_id(token_id) ⇒ Object
26
27
28
|
# File 'app/models/sso/session.rb', line 26
def with_token_id(token_id)
includes(:clients).where("sso_clients.access_token_id": token_id)
end
|
Instance Method Details
#active? ⇒ Boolean
54
55
56
|
# File 'app/models/sso/session.rb', line 54
def active?
revoked_at.blank?
end
|
#logout ⇒ Object
58
59
60
61
62
63
|
# File 'app/models/sso/session.rb', line 58
def logout
clients.with_access_token.each do |c|
c.access_token.revoke
end
update revoked_at: Time.current, revoke_reason: "logout"
end
|