src/Security/AccessDeniedHandler.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Security;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  6. use Symfony\Component\Security\Http\Authorization\AccessDeniedHandlerInterface;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Twig\Environment;
  9. class AccessDeniedHandler implements AccessDeniedHandlerInterface
  10. {
  11. public function __construct(Environment $twig)
  12. {
  13. $this->twig = $twig;
  14. }
  15. public function handle(Request $request, AccessDeniedException $accessDeniedException)
  16. {
  17. // XML?
  18. if($request->isXmlHttpRequest())
  19. {
  20. return new JsonResponse(
  21. array(
  22. 'success' => false,
  23. 'error' => $accessDeniedException->getMessage()
  24. ));
  25. }
  26. // Render view
  27. return new Response($this->twig->render('System/Errors/accessDenied.html.twig', array(
  28. 'message' => $accessDeniedException->getMessage()
  29. )));
  30. }
  31. }