osb/app/Exceptions/Handler.php

68 lines
1.4 KiB
PHP
Raw Normal View History

2017-11-03 05:26:07 +00:00
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Auth\Access\AuthorizationException;
2017-11-03 05:26:07 +00:00
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
2017-11-03 05:26:07 +00:00
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* Report or log an exception.
*
* @param Exception $exception
* @return void
* @throws Exception
*/
public function report(Exception $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param Request $request
* @param Exception $exception
* @return Response
* @throws Exception
*/
public function render($request, Exception $exception)
{
// We'll render a 404 for any authorisation exceptions to hide the fact that the resource exists
if ($exception instanceof AuthorizationException) {
Log::error('Request not authorised',['user'=>Auth::user()->id,'request'=>$request->path()]);
if ($request->ajax())
return response()->json(['data'=>[]],200);
else
abort(404,'Not here...');
}
return parent::render($request, $exception);
}
}