Files
ludikevent_crm/src/Security/AccessDeniedHandler.php

36 lines
1.3 KiB
PHP
Raw Normal View History

<?php
namespace App\Security;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\Security\Http\Authorization\AccessDeniedHandlerInterface;
use Twig\Environment;
class AccessDeniedHandler implements AccessDeniedHandlerInterface
{
public function __construct(private readonly UrlGeneratorInterface $urlGenerator, private readonly Environment $twig)
{
}
public function handle(Request $request, AccessDeniedException $accessDeniedException): Response
{
$attributes = $accessDeniedException->getAttributes();
$pathInfo = $request->getPathInfo();
if (str_contains($pathInfo, "/admin")) {
return new RedirectResponse($this->urlGenerator->generate("app_home"));
}
if (in_array('application/json', $request->getAcceptableContentTypes())) {
return new JsonResponse(null, Response::HTTP_FORBIDDEN);
}
return new JsonResponse(null, Response::HTTP_FORBIDDEN);
}
}