original = $e; return parent::prepareException($e); // TODO: Change the autogenerated stub } public function render($request, Exception $e) { if ($e instanceof AuthenticationException) { return $this->unauthenticated($request, $e); } if ($e instanceof NotFoundHttpException && $redirect = config('streams::404.redirect')) { return redirect($redirect); } return parent::render($request, $e); } protected function renderHttpException(HttpExceptionInterface $e) { if (env('APP_DEBUG') === true) { return $this->convertExceptionToResponse($e); } $summary = $e->getMessage(); $headers = $e->getHeaders(); $code = $e->getStatusCode(); $name = trans("streams::error.{$code}.name"); $message = trans("streams::error.{$code}.message"); $id = $this->container->make(ExceptionIdentifier::class)->identify($this->original); if (view()->exists($view = "streams::errors/{$code}")) { return response()->view($view, compact('id', 'code', 'name', 'message', 'summary'), $code, $headers); } return response()->view( 'streams::errors/error', compact('id', 'code', 'name', 'message', 'summary'), $code, $headers ); } public function report(Exception $e) { if (!setting_value('visiosoft.module.advs::disable_sentry') && app()->bound('sentry') && $this->shouldReport($e) && env('SENTRY_LARAVEL_DSN')) { app('sentry')->captureException($e); } parent::report($e); } protected function context() { try { return array_filter( [ 'user' => Auth::id(), 'email' => Auth::user() ? Auth::user()->email : null, 'url' => request() ? request()->fullUrl() : null, 'identifier' => $this->container->make(ExceptionIdentifier::class)->identify($this->original), ] ); } catch (Throwable $e) { return []; } } protected function unauthenticated($request, AuthenticationException $exception) { if ($request->expectsJson()) { return response()->json(['error' => 'Unauthenticated.'], 401); } if ($request->segment(1) === 'admin') { return redirect()->guest('admin/login'); } else { return redirect()->guest('login'); } } }