Я хочу перенаправить всех пользователей, у которых нет роли администратора, на домашнюю страницу с kernel.exception
это моя страница контроллера:
<?php
namespace App\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class ProduitController extends AbstractController
{
/**
* @Route("/produit", name="produit")
* @IsGranted("ROLE_ADMIN")
*/
public function index()
{
return $this->render('produit/index.html.twig');
}
}
это EventListener:
<?php
namespace App\EventListener;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
class NotAuthenticationListener
{
public function onKernelException(GetResponseForExceptionEvent $event)
{
$exception = $event->getException();
if (!$exception instanceof AccessDeniedException) {
return;
}
return new Response("Access Denied !");
}
}
service.yaml
App\EventListener\NotAuthenticationListener:
tags:
- { name: kernel.event_listener, event: kernel.exception, method: onKernelException }
, но он не работает введите описание изображенияздесь