afb5011fbe
[BREAKING] — REMOVES REMOTE API A new API will need to be implemented properly using the new Laravel Passport OAuth2 system. DingoAPI was becoming too unstable and development wasn’t really moving along enough to continue to rely on it.
99 lines
2.9 KiB
PHP
99 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace Pterodactyl\Exceptions;
|
|
|
|
use Exception;
|
|
use DisplayException;
|
|
use DisplayValidationException;
|
|
use AccountNotFoundException;
|
|
|
|
use Illuminate\Auth\AuthenticationException;
|
|
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
|
|
|
class Handler extends ExceptionHandler
|
|
{
|
|
/**
|
|
* A list of the exception types that should not be reported.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $dontReport = [
|
|
\Illuminate\Auth\AuthenticationException::class,
|
|
\Illuminate\Auth\Access\AuthorizationException::class,
|
|
\Symfony\Component\HttpKernel\Exception\HttpException::class,
|
|
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
|
|
\Illuminate\Session\TokenMismatchException::class,
|
|
\Illuminate\Validation\ValidationException::class,
|
|
];
|
|
|
|
/**
|
|
* Report or log an exception.
|
|
*
|
|
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
|
|
*
|
|
* @param \Exception $e
|
|
* @return void
|
|
*/
|
|
public function report(Exception $exception)
|
|
{
|
|
return parent::report($exception);
|
|
}
|
|
|
|
/**
|
|
* Render an exception into an HTTP response.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \Exception $e
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function render($request, Exception $e)
|
|
{
|
|
if ($e instanceof ModelNotFoundException) {
|
|
$e = new NotFoundHttpException($e->getMessage(), $e);
|
|
}
|
|
|
|
if ($request->isXmlHttpRequest() || $request->ajax() || $request->is('remote/*')) {
|
|
|
|
$exception = 'An exception occured while attempting to perform this action, please try again.';
|
|
|
|
if ($e instanceof DisplayException) {
|
|
$exception = $e->getMessage();
|
|
}
|
|
|
|
// Live environment, just return a nice error.
|
|
if(!env('APP_DEBUG', false)) {
|
|
return response()->json([
|
|
'error' => $exception
|
|
], 500);
|
|
}
|
|
|
|
// If we are debugging, return the exception in it's full manner.
|
|
return response()->json([
|
|
'error' => (empty($e->getMessage())) ? $exception : $e->getMessage(),
|
|
'code' => $e->getCode(),
|
|
'file' => $e->getFile(),
|
|
'line' => $e->getLine(),
|
|
'trace' => $e->getTrace(),
|
|
], 500);
|
|
|
|
}
|
|
|
|
return parent::render($request, $e);
|
|
}
|
|
|
|
/**
|
|
* Convert an authentication exception into an unauthenticated response.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \Illuminate\Auth\AuthenticationException $exception
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
protected function unauthenticated($request, AuthenticationException $exception)
|
|
{
|
|
if ($request->expectsJson()) {
|
|
return response()->json(['error' => 'Unauthenticated.'], 401);
|
|
}
|
|
return redirect()->guest('/auth/login');
|
|
}
|
|
|
|
}
|