src/EventListener/ValidateDomainGroupUserListener.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Entity\User;
  4. use App\Repository\GroupRepository;
  5. use App\Services\Group\ValidateDomainGroupUserService;
  6. use HWI\Bundle\OAuthBundle\Security\Core\Authentication\Token\OAuthToken;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpKernel\Event\RequestEvent;
  9. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  10. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  11. /**
  12.  * Class ValidateDomainGroupUserListener
  13.  * @package App\EventListener
  14.  */
  15. class ValidateDomainGroupUserListener
  16. {
  17.     /**
  18.      * @var TokenStorageInterface
  19.      */
  20.     private $tokenStorage;
  21.     /**
  22.      * ValidateDomainGroupUserListener constructor.
  23.      * @param TokenStorageInterface $tokenStorage
  24.      */
  25.     public function __construct(TokenStorageInterface $tokenStorage)
  26.     {
  27.         $this->tokenStorage $tokenStorage;
  28.     }
  29.     /**
  30.      * @param RequestEvent $event
  31.      */
  32.     public function onKernelRequest(RequestEvent $event): void
  33.     {
  34.         if (!$this->tokenStorage->getToken() instanceof UsernamePasswordToken) {
  35.             return;
  36.         }
  37.         $user $this->tokenStorage->getToken()->getUser();
  38.         $validateDomainGroupUserService = new ValidateDomainGroupUserService();
  39.         if (!$validateDomainGroupUserService->__invoke($event->getRequest()->getHost(), $user)) {
  40.             $event->setResponse(new Response(''403));
  41.         }
  42.     }
  43. }