Sha256: 560658002a0b5b63000a23020f326da4742ba89f4913d92daac413df6ba603a9

Contents?: true

Size: 1.17 KB

Versions: 5

Compression:

Stored size: 1.17 KB

Contents

module Doorkeeper
  module Orm
    module Sequel
      module AccessGrantMixin
        extend ActiveSupport::Concern

        include SequelCompat
        include OAuth::Helpers
        include Models::Expirable
        include Models::Revocable
        include Models::Accessible
        include Models::Scopes

        included do
          plugin :validation_helpers
          plugin :timestamps

          many_to_one :application, class: 'Doorkeeper::Application'

          set_allowed_columns :resource_owner_id, :application_id,
                              :expires_in, :redirect_uri, :scopes

          def before_validation
            generate_token if new?
            super
          end

          def validate
            super
            validates_presence [:resource_owner_id, :application_id,
                                :token, :expires_in, :redirect_uri]
            validates_unique [:token]
          end
        end

        module ClassMethods
          def by_token(token)
            first(token: token.to_s)
          end
        end

        private

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
doorkeeper-sequel-1.4.0 lib/doorkeeper/orm/sequel/models/access_grant_mixin.rb
doorkeeper-sequel-1.3.1 lib/doorkeeper/orm/sequel/models/access_grant_mixin.rb
doorkeeper-sequel-1.3.0 lib/doorkeeper/orm/sequel/models/access_grant_mixin.rb
doorkeeper-sequel-1.2.3 lib/doorkeeper/orm/sequel/models/access_grant_mixin.rb
doorkeeper-sequel-1.2.2 lib/doorkeeper/orm/sequel/models/access_grant_mixin.rb