Sha256: 16c20100e9c654151832d5981d97da7fdb0c8296b1a8f69da3a35925e13d74ae

Contents?: true

Size: 1.12 KB

Versions: 7

Compression:

Stored size: 1.12 KB

Contents

module Doorkeeper
  module OAuth
    class PasswordAccessTokenRequest < BaseRequest
      include OAuth::Helpers

      validate :client,         error: :invalid_client
      validate :resource_owner, error: :invalid_grant
      validate :scopes,         error: :invalid_scope

      attr_accessor :server, :client, :resource_owner, :parameters,
                    :access_token

      def initialize(server, client, resource_owner, parameters = {})
        @server          = server
        @resource_owner  = resource_owner
        @client          = client
        @parameters      = parameters
        @original_scopes = parameters[:scope]
      end

      private

      def before_successful_response
        find_or_create_access_token(client, resource_owner.id, scopes, server)
        super
      end

      def validate_scopes
        return true unless @original_scopes.present?
        ScopeChecker.valid? @original_scopes, server.scopes, client.try(:scopes)
      end

      def validate_resource_owner
        !!resource_owner
      end

      def validate_client
        !parameters[:client_id] || !!client
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
doorkeeper-4.4.3 lib/doorkeeper/oauth/password_access_token_request.rb
doorkeeper-4.4.2 lib/doorkeeper/oauth/password_access_token_request.rb
doorkeeper-4.4.1 lib/doorkeeper/oauth/password_access_token_request.rb
doorkeeper-4.4.0 lib/doorkeeper/oauth/password_access_token_request.rb
doorkeeper-4.3.2 lib/doorkeeper/oauth/password_access_token_request.rb
doorkeeper-4.3.1 lib/doorkeeper/oauth/password_access_token_request.rb
doorkeeper-4.3.0 lib/doorkeeper/oauth/password_access_token_request.rb