Sha256: f7bd2356113ebe7b858599d1c9262491ad501a9f193b93b08fc3a2b199b25b1d
Contents?: true
Size: 1.94 KB
Versions: 3
Compression:
Stored size: 1.94 KB
Contents
module Doorkeeper class AccessToken < ActiveRecord::Base include Doorkeeper::OAuth::Helpers include Doorkeeper::Models::Expirable include Doorkeeper::Models::Revocable self.table_name = :oauth_access_tokens belongs_to :application scope :accessible, where(:revoked_at => nil) validates :application_id, :resource_owner_id, :token, :presence => true attr_accessor :use_refresh_token before_validation :generate_token, :on => :create before_validation :generate_refresh_token, :on => :create, :if => :use_refresh_token? def self.revoke_all_for(application_id, resource_owner) where(:application_id => application_id, :resource_owner_id => resource_owner.id).delete_all end def self.matching_token_for(application, resource_owner_or_id, scopes) token = last_authorized_token_for(application, resource_owner_or_id) token if token && ScopeChecker.matches?(token.scopes, scopes) end def self.last_authorized_token_for(application, resource_owner_or_id) resource_owner_id = resource_owner_or_id.kind_of?(ActiveRecord::Base) ? resource_owner_or_id.id : resource_owner_or_id accessible. where(:application_id => application.id, :resource_owner_id => resource_owner_id). order("created_at desc"). limit(1). first end private_class_method :last_authorized_token_for def token_type "bearer" end def accessible? !expired? && !revoked? end def scopes scope_string = self[:scopes] || "" scope_string.split(" ").map(&:to_sym) end def scopes_string self[:scopes] end def use_refresh_token? self.use_refresh_token end private def generate_refresh_token self.refresh_token = UniqueToken.generate_for :refresh_token, self.class end def generate_token self.token = UniqueToken.generate_for :token, self.class end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
doorkeeper-0.3.3 | app/models/doorkeeper/access_token.rb |
doorkeeper-0.3.2 | app/models/doorkeeper/access_token.rb |
doorkeeper-0.3.1 | app/models/doorkeeper/access_token.rb |