class Doorkeeper::OAuth::PasswordAccessTokenRequest

def before_successful_response

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

def initialize(server, client, resource_owner, parameters = {})

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

def validate_client

def validate_client
  !parameters[:client_id] || client.present?
end

def validate_client_supports_grant_flow

def validate_client_supports_grant_flow
  Doorkeeper.configuration.allow_grant_flow_for_client?(grant_type, client)
end

def validate_resource_owner

def validate_resource_owner
  !resource_owner.nil?
end

def validate_scopes

def validate_scopes
  client_scopes = client.try(:scopes)
  return true if scopes.blank?
  ScopeChecker.valid?(
    scope_str: scopes.to_s,
    server_scopes: server.scopes,
    app_scopes: client_scopes,
    grant_type: grant_type
  )
end