Sha256: e1ba6812589203aceb600dcb7db537c0417fa11e0f22399af0d492448932de73

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

module DoorkeeperSequel
  module AccessGrantMixin
    extend ActiveSupport::Concern

    include SequelCompat
    include Doorkeeper::OAuth::Helpers
    include Doorkeeper::Models::Expirable
    include Doorkeeper::Models::Revocable
    include Doorkeeper::Models::Accessible
    include Doorkeeper::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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
doorkeeper-sequel-1.5.0 lib/doorkeeper-sequel/mixins/access_grant_mixin.rb