Sha256: 853ea11c072665118858c688f082b5babecbde4353a27487dd928579158aa095

Contents?: true

Size: 1.46 KB

Versions: 14

Compression:

Stored size: 1.46 KB

Contents

module Doorkeeper
  class AccessToken < ActiveRecord::Base
    self.table_name = "#{table_name_prefix}oauth_access_tokens#{table_name_suffix}".to_sym

    include AccessTokenMixin
    include ActiveModel::MassAssignmentSecurity if defined?(::ProtectedAttributes)

    belongs_to_options = {
      class_name: 'Doorkeeper::Application',
      inverse_of: :access_tokens
    }

    if defined?(ActiveRecord::Base) && ActiveRecord::VERSION::MAJOR >= 5
      belongs_to_options[:optional] = true
    end

    belongs_to :application, belongs_to_options

    validates :token, presence: true, uniqueness: true
    validates :refresh_token, uniqueness: true, if: :use_refresh_token?

    # @attr_writer [Boolean, nil] use_refresh_token
    #   indicates the possibility of using refresh token
    attr_writer :use_refresh_token

    before_validation :generate_token, on: :create
    before_validation :generate_refresh_token,
                      on: :create, if: :use_refresh_token?

    # Searches for not revoked Access Tokens associated with the
    # specific Resource Owner.
    #
    # @param resource_owner [ActiveRecord::Base]
    #   Resource Owner model instance
    #
    # @return [ActiveRecord::Relation]
    #   active Access Tokens for Resource Owner
    #
    def self.active_for(resource_owner)
      where(resource_owner_id: resource_owner.id, revoked_at: nil)
    end

    def self.refresh_token_revoked_on_use?
      column_names.include?('previous_refresh_token')
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
doorkeeper-5.0.3 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-5.1.0.rc2 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-5.1.0.rc1 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-5.0.2 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-5.0.1 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-4.4.3 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-5.0.0 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-4.4.2 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-4.4.1 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-5.0.0.rc2 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-4.4.0 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-5.0.0.rc1 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-4.3.2 lib/doorkeeper/orm/active_record/access_token.rb
doorkeeper-4.3.1 lib/doorkeeper/orm/active_record/access_token.rb