src/EventListener/RequestListener.php line 38

Open in your IDE?
  1. <?php
  2. /**
  3.  * Request Listener check is active user
  4.  *
  5.  * @package RMCS
  6.  * @author Vlad Shashkov  <vlad.s@zimalab.com>
  7.  * @copyright 2014 - 2019 The Zimalab
  8.  */
  9. declare(strict_types=1);
  10. namespace App\EventListener;
  11. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  12. use Symfony\Component\Security\Core\Exception\AuthenticationException;
  13. class RequestListener
  14. {
  15.     /**
  16.      * @var TokenStorageInterface
  17.      */
  18.     private $storage;
  19.     /**
  20.      * RequestListener constructor.
  21.      * @param TokenStorageInterface $storage
  22.      */
  23.     public function __construct(TokenStorageInterface $storage)
  24.     {
  25.         $this->storage $storage;
  26.     }
  27.     /**
  28.      * Listener AuthenticationSuccessEvent
  29.      *
  30.      * @return void
  31.      */
  32.     public function onAuthenticationSuccess():void
  33.     {
  34.         $this->isActiveUser();
  35.     }
  36.     /**
  37.      *  Listener Request
  38.      *
  39.      * @return void
  40.      */
  41.     public function onRequest():void
  42.     {
  43.         $this->isActiveUser();
  44.     }
  45.     /**
  46.      * Access denied not active user
  47.      *
  48.      * @return void
  49.      */
  50.     private function isActiveUser():void
  51.     {
  52.         $token $this->storage->getToken();
  53.         if (method_exists($token'getUser') &&
  54.             $token->getUser() !== 'anon.' &&
  55.             !$token->getUser()->isStatus()) {
  56.             throw new AuthenticationException('Your account not active');
  57.         }
  58.     }
  59. }