Sha256: 415e6bb51f9f5fdf49e10159bdde5863aad1c565340fe6f4bdf0bf9633d0e94b

Contents?: true

Size: 993 Bytes

Versions: 7

Compression:

Stored size: 993 Bytes

Contents

module Doorkeeper
  module AccessGrantMixin
    extend ActiveSupport::Concern

    include OAuth::Helpers
    include Models::Expirable
    include Models::Revocable
    include Models::Accessible
    include Models::Scopes
    include ActiveModel::MassAssignmentSecurity if defined?(::ProtectedAttributes)

    included do
      belongs_to :application, class_name: 'Doorkeeper::Application', inverse_of: :access_grants

      if respond_to?(:attr_accessible)
        attr_accessible :resource_owner_id, :application_id, :expires_in, :redirect_uri, :scopes
      end

      validates :resource_owner_id, :application_id, :token, :expires_in, :redirect_uri, presence: true
      validates :token, uniqueness: true

      before_validation :generate_token, on: :create
    end

    module ClassMethods
      def by_token(token)
        where(token: token.to_s).limit(1).to_a.first
      end
    end

    private

    def generate_token
      self.token = UniqueToken.generate
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
doorkeeper-4.0.0.rc1 lib/doorkeeper/models/access_grant_mixin.rb
doorkeeper-3.1.0 lib/doorkeeper/models/access_grant_mixin.rb
doorkeeper-3.0.1 lib/doorkeeper/models/access_grant_mixin.rb
doorkeeper-2.2.2 lib/doorkeeper/models/access_grant_mixin.rb
doorkeeper-3.0.0 lib/doorkeeper/models/access_grant_mixin.rb
doorkeeper-3.0.0.rc2 lib/doorkeeper/models/access_grant_mixin.rb
doorkeeper-3.0.0.rc1 lib/doorkeeper/models/access_grant_mixin.rb