28 lines
813 B
PHP
28 lines
813 B
PHP
|
<?php
|
||
|
|
||
|
namespace Pterodactyl\Http\Middleware\Api\Client;
|
||
|
|
||
|
use Illuminate\Http\Request;
|
||
|
use Pterodactyl\Models\ApiKey;
|
||
|
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
|
||
|
|
||
|
class RequireClientApiKey
|
||
|
{
|
||
|
/**
|
||
|
* Blocks a request to the Client API endpoints if the user is providing an API token
|
||
|
* that was created for the application API.
|
||
|
*
|
||
|
* @return mixed
|
||
|
*/
|
||
|
public function handle(Request $request, \Closure $next)
|
||
|
{
|
||
|
$token = $request->user()->currentAccessToken();
|
||
|
|
||
|
if ($token instanceof ApiKey && $token->key_type === ApiKey::TYPE_APPLICATION) {
|
||
|
throw new AccessDeniedHttpException('You are attempting to use an application API key on an endpoint that requires a client API key.');
|
||
|
}
|
||
|
|
||
|
return $next($request);
|
||
|
}
|
||
|
}
|