/** * {inheritdoc}. */ public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null) { //always enforce non-debug mode $this->debug = false; $response = parent::showAction($request, $exception, $logger); $response->setStatusCode($exception->getStatusCode()); $response->headers->set(ResponseHeaders::ERROR_HANDLED_HEADER, true); return $response; }
public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null) { if ($exception->getClass() == MailException::class) { return new Response($this->twig->render('CantigaCoreBundle:Exception:mail-exception.html.twig', array('message' => $exception->getMessage())), 501); } return parent::showAction($request, $exception, $logger); }
public function testFallbackToHtmlIfNoTemplateForRequestedFormat() { $twig = new \Twig_Environment(new \Twig_Loader_Array(array('TwigBundle:Exception:error.html.twig' => 'html'))); $request = Request::create('whatever'); $request->setRequestFormat('txt'); $exception = FlattenException::create(new \Exception()); $controller = new ExceptionController($twig, false); $response = $controller->showAction($request, $exception); $this->assertEquals('html', $request->getRequestFormat()); }
public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null, $format = 'html') { $code = $exception->getStatusCode(); if (!$this->debug) { $template = new TemplateReference(sprintf('@SymEdit/Exception/%d.html.twig', $code)); if ($this->templateExists($template)) { return new Response($this->twig->render($template, ['status_code' => $code, 'status_text' => isset(Response::$statusTexts[$code]) ? Response::$statusTexts[$code] : '', 'exception' => $exception, 'logger' => $logger])); } } return parent::showAction($request, $exception, $logger, $format); }
public function testOnlyClearOwnOutputBuffers() { $flatten = $this->getMock('Symfony\\Component\\HttpKernel\\Exception\\FlattenException'); $flatten->expects($this->once())->method('getStatusCode')->will($this->returnValue(404)); $twig = $this->getMockBuilder('\\Twig_Environment')->disableOriginalConstructor()->getMock(); $twig->expects($this->any())->method('render')->will($this->returnValue($this->getMock('Symfony\\Component\\HttpFoundation\\Response'))); $twig->expects($this->any())->method('getLoader')->will($this->returnValue($this->getMock('\\Twig_LoaderInterface'))); $request = Request::create('/'); $request->headers->set('X-Php-Ob-Level', 1); $controller = new ExceptionController($twig, false); $controller->showAction($request, $flatten); }
/** * {@inheritdoc} */ public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null) { $code = $exception->getStatusCode(); $showException = $request->attributes->get('showException', $this->debug); $template = $this->requestAnalyzer->getWebspace()->getTheme()->getErrorTemplate($code); if ($showException || $request->getRequestFormat() !== 'html' || $template === null) { return parent::showAction($request, $exception, $logger); } $currentContent = $this->getAndCleanOutputBuffering($request->headers->get('X-Php-Ob-Level', -1)); $parameter = ['status_code' => $code, 'status_text' => isset(Response::$statusTexts[$code]) ? Response::$statusTexts[$code] : '', 'exception' => $exception, 'currentContent' => $currentContent]; $data = $this->parameterResolver->resolve($parameter, $this->requestAnalyzer); return new Response($this->twig->render($template, $data), $code); }
/** * {@inheritDoc} * @see Symfony\Bundle\TwigBundle\Controller\ExceptionController::showAction */ public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null) { if ($exception->getStatusCode() != 404 || $request->getRequestFormat() != 'html') { return parent::showAction($request, $exception, $logger); } // 404 html $randomLine = $this->lineRepo->getRandom(1)[0]; // from parent $currentContent = $this->getAndCleanOutputBuffering($request->headers->get('X-Php-Ob-Level', -1)); $showException = $request->attributes->get('showException', $this->debug); // As opposed to an additional parameter, this maintains BC $code = $exception->getStatusCode(); return new Response($this->twig->render($this->findTemplate($request, $request->getRequestFormat(), $code, $showException), ['random_line' => $randomLine, 'status_code' => $code, 'status_text' => isset(Response::$statusTexts[$code]) ? Response::$statusTexts[$code] : '', 'exception' => $exception, 'logger' => $logger, 'currentContent' => $currentContent])); }
/** * @param Request $request * @param FlattenException $exception * @param DebugLoggerInterface $logger * @param string $_format * @return Response */ public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null, $_format = 'html') { $code = $exception->getStatusCode(); if (404 !== $code) { return parent::showAction($request, $exception, $logger, $_format); } $currentContent = $this->getAndCleanOutputBuffering($request->headers->get('X-Php-Ob-Level', -1)); $groupedSuggestions = array(); foreach ($this->suggestionProviders as $item) { $suggestions = $item['provider']->create($request); $groupedSuggestions[$item['group']] = isset($groupedSuggestions[$item['group']]) ? array_merge($groupedSuggestions[$item['group']], $suggestions) : $suggestions; } return new Response($this->twig->render($this->findTemplate($request, $_format, $code, $this->debug), array('status_code' => $code, 'status_text' => isset(Response::$statusTexts[$code]) ? Response::$statusTexts[$code] : '', 'exception' => $exception, 'logger' => $logger, 'currentContent' => $currentContent, 'best_matches' => $groupedSuggestions)), $code); }
public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null, $format = 'html') { if ('Trez\\LogicielTrezBundle\\Exception\\LockedException' === $exception->getClass()) { $this->session->getFlashBag()->set('error', "Vous ne pouvez pas éditer un exercice/budget verrouillé ou ses fils"); return new RedirectResponse($this->request->getRequestUri(), 302); } if ('Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' === $exception->getClass()) { $this->session->getFlashBag()->set('error', "Vous n'avez pas les privilèges nécessaires pour effectuer cette action !"); if ($this->securityContext->isGranted('ROLE_USER') === true) { return new Response($this->twig->render('TrezLogicielTrezBundle:Default:index.html.twig', array())); } else { return new Response("Vous n'avez pas les privilèges nécessaires pour afficher cette page !"); } } // else default behavior return parent::showAction($exception, $logger, $format); }
public function showAction(FlattenException $exception, DebugLoggerInterface $logger = null, $format = 'html') { $this->exceptionClass = $exception->getClass(); return parent::showAction($exception, $logger, $format); }
public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null) { $this->exceptionClass = $exception->getClass(); return parent::showAction($request, $exception, $logger); // TODO: Change the autogenerated stub }