Module: Doorkeeper::Orm::Sequel::AccessTokenMixin::ClassMethods
- Defined in:
- lib/doorkeeper/orm/sequel/models/access_token_mixin.rb
Instance Method Summary collapse
- #by_refresh_token(refresh_token) ⇒ Object
- #by_token(token) ⇒ Object
- #find_or_create_for(application, resource_owner_id, scopes, expires_in, use_refresh_token) ⇒ Object
- #last_authorized_token_for(application_id, resource_owner_id) ⇒ Object
- #matching_token_for(application, resource_owner_or_id, scopes) ⇒ Object
- #revoke_all_for(application_id, resource_owner, clock = Time) ⇒ Object
- #scopes_match?(token_scopes, param_scopes, app_scopes) ⇒ Boolean
Instance Method Details
#by_refresh_token(refresh_token) ⇒ Object
52 53 54 |
# File 'lib/doorkeeper/orm/sequel/models/access_token_mixin.rb', line 52 def by_refresh_token(refresh_token) first(refresh_token: refresh_token.to_s) end |
#by_token(token) ⇒ Object
48 49 50 |
# File 'lib/doorkeeper/orm/sequel/models/access_token_mixin.rb', line 48 def by_token(token) first(token: token.to_s) end |
#find_or_create_for(application, resource_owner_id, scopes, expires_in, use_refresh_token) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/doorkeeper/orm/sequel/models/access_token_mixin.rb', line 84 def find_or_create_for(application, resource_owner_id, scopes, expires_in, use_refresh_token) if Doorkeeper.configuration.reuse_access_token access_token = matching_token_for(application, resource_owner_id, scopes) return access_token if access_token && !access_token.expired? end create!( application_id: application.try(:id), resource_owner_id: resource_owner_id, scopes: scopes.to_s, expires_in: expires_in, use_refresh_token: use_refresh_token ) end |
#last_authorized_token_for(application_id, resource_owner_id) ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/doorkeeper/orm/sequel/models/access_token_mixin.rb', line 99 def (application_id, resource_owner_id) where(application_id: application_id, resource_owner_id: resource_owner_id, revoked_at: nil) .send(order_method, created_at_desc) .first end |
#matching_token_for(application, resource_owner_or_id, scopes) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/doorkeeper/orm/sequel/models/access_token_mixin.rb', line 63 def matching_token_for(application, resource_owner_or_id, scopes) resource_owner_id = if resource_owner_or_id.respond_to?(:to_key) resource_owner_or_id.id else resource_owner_or_id end token = (application.try(:id), resource_owner_id) if token && scopes_match?(token.scopes, scopes, application.try(:scopes)) token end end |
#revoke_all_for(application_id, resource_owner, clock = Time) ⇒ Object
56 57 58 59 60 61 |
# File 'lib/doorkeeper/orm/sequel/models/access_token_mixin.rb', line 56 def revoke_all_for(application_id, resource_owner, clock = Time) where(application_id: application_id, resource_owner_id: resource_owner.id, revoked_at: nil) .update(revoked_at: clock.now.utc) end |
#scopes_match?(token_scopes, param_scopes, app_scopes) ⇒ Boolean
75 76 77 78 79 80 81 82 |
# File 'lib/doorkeeper/orm/sequel/models/access_token_mixin.rb', line 75 def scopes_match?(token_scopes, param_scopes, app_scopes) (token_scopes.blank? && param_scopes.blank?) || Doorkeeper::OAuth::Helpers::ScopeChecker.match?( token_scopes.to_s, param_scopes, app_scopes ) end |