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
35
36
37
38
|
# File 'app/models/sso/session.rb', line 35
def by_access_token(token)
oauth_token = ::Doorkeeper::AccessToken.by_token(token)
with_token_id(oauth_token.id)
end
|
.generate_master(user, options) ⇒ Object
40
41
42
43
44
45
46
47
|
# File 'app/models/sso/session.rb', line 40
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
49
50
51
52
|
# File 'app/models/sso/session.rb', line 49
def logout(sso_session_id)
return false unless session = find_by_id(sso_session_id)
session.logout
end
|
.master_for(grant_id) ⇒ Object
23
24
25
|
# File 'app/models/sso/session.rb', line 23
def master_for(grant_id)
active.find_by!(access_grant_id: grant_id)
end
|
.with_grant_id(grant_id) ⇒ Object
31
32
33
|
# File 'app/models/sso/session.rb', line 31
def with_grant_id(grant_id)
includes(:clients).where("sso_clients.access_grant_id": grant_id)
end
|
.with_token_id(token_id) ⇒ Object
27
28
29
|
# File 'app/models/sso/session.rb', line 27
def with_token_id(token_id)
includes(:clients).where("sso_clients.access_token_id": token_id)
end
|
Instance Method Details
#active? ⇒ Boolean
55
56
57
|
# File 'app/models/sso/session.rb', line 55
def active?
revoked_at.blank?
end
|
#logout ⇒ Object
59
60
61
|
# File 'app/models/sso/session.rb', line 59
def logout
update revoked_at: Time.current, revoke_reason: "logout"
end
|