src/Component/Acl/EventListener/AclResourceListener.php line 18

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace BitBag\OpenMarketplace\Component\Acl\EventListener;
  4. use BitBag\OpenMarketplace\Component\Acl\Checker\ResourcePrivilegeCheckerInterface;
  5. use Sylius\Bundle\ResourceBundle\Event\ResourceControllerEvent;
  6. use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
  7. final class AclResourceListener
  8. {
  9.     public function __construct(
  10.         private ResourcePrivilegeCheckerInterface $resourcePrivilegeChecker,
  11.     ) {
  12.     }
  13.     public function __invoke(ResourceControllerEvent $resourceControllerEvent): void
  14.     {
  15.         $resource $resourceControllerEvent->getSubject();
  16.         if (false === $this->resourcePrivilegeChecker->hasPrivilege($resource)) {
  17.             throw new AccessDeniedHttpException();
  18.         }
  19.     }
  20. }