Sha256: 58ccaf2c951b2340c41f63b7148a17012d4e8da81480e5148568242ec925f25b
Contents?: true
Size: 1.9 KB
Versions: 3
Compression:
Stored size: 1.9 KB
Contents
module Doorkeeper class AccessToken < ActiveRecord::Base include Doorkeeper::OAuth::Helpers include Doorkeeper::Models::Expirable include Doorkeeper::Models::Revocable include Doorkeeper::Models::Scopes self.table_name = :oauth_access_tokens belongs_to :application scope :accessible, where(:revoked_at => nil) validates :application_id, :token, :presence => true attr_accessor :use_refresh_token attr_accessible :application_id, :resource_owner_id, :expires_in, :scopes, :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 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.4.2 | app/models/doorkeeper/access_token.rb |
doorkeeper-0.4.1 | app/models/doorkeeper/access_token.rb |
doorkeeper-0.4.0 | app/models/doorkeeper/access_token.rb |