class Doorkeeper::OAuth::ClientCredentials::Validator

def initialize(server, request)

def initialize(server, request)
  @server = server
  @request = request
  @client = request.client
  validate
end

def validate_client

def validate_client
  @client.present?
end

def validate_client_supports_grant_flow

def validate_client_supports_grant_flow
  return if @client.blank?
  Doorkeeper.config.allow_grant_flow_for_client?(
    Doorkeeper::OAuth::CLIENT_CREDENTIALS,
    @client.application,
  )
end

def validate_scopes

def validate_scopes
  application_scopes = if @client.present?
                         @client.application.scopes
                       else
                         ""
                       end
  return true if @request.scopes.blank? && application_scopes.blank?
  ScopeChecker.valid?(
    scope_str: @request.scopes.to_s,
    server_scopes: @server.scopes,
    app_scopes: application_scopes,
    grant_type: Doorkeeper::OAuth::CLIENT_CREDENTIALS,
  )
end