src/EventSubscriber/ActivityCheckSubscriber.php line 47

Open in your IDE?
  1. <?php
  2. // src/App/EventSubscriber/TokenSubscriber.php
  3. namespace App\EventSubscriber;
  4. use App\Controller\ActivityCheckController;
  5. use App\Entity\User;
  6. use App\Services\ActivityLogger;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. use Symfony\Component\HttpFoundation\RequestStack;
  10. use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
  11. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  12. //use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
  13. use Symfony\Component\HttpKernel\KernelEvents;
  14. //use Symfony\Component\HttpFoundation\Session\Session;
  15. use App\Entity\LastActivity;
  16. use Symfony\Component\Security\Core\Security;
  17. use Doctrine\ORM\EntityManager;
  18. class ActivityCheckSubscriber implements EventSubscriberInterface {
  19. //    private $lastActivity;
  20.     private $user;
  21.     private $entityManager;
  22.     private $activityLogger;
  23. //    private $requestStack;
  24.     public function __construct(
  25.         Security               $security,
  26.         EntityManagerInterface $entityManager,
  27.         ActivityLogger         $activityLogger
  28. //        RequestStack           $requestStack
  29.     ) {
  30. //        $this->lastActivity = new LastActivity();
  31.         $this->user $security->getUser();
  32.         $this->entityManager $entityManager;
  33.         $this->activityLogger $activityLogger;
  34. //        $this->requestStack = $requestStack;
  35.     }
  36.     public function onKernelController(ControllerEvent $event) {
  37.         $controller $event->getController();
  38.         // when a controller class defines multiple action methods, the controller
  39.         // is returned as [$controllerInstance, 'methodName']
  40.         if (is_array($controller)) {
  41.             $controller $controller[0];
  42.         }
  43.         if ($controller instanceof ActivityCheckController) {
  44.             $this->activityLogger->logActivity($this->entityManager$this->user);
  45. //            if (is_a($this->user, User::class) && $this->user->getPasswordChanged() < (new \DateTime('- 12 months'))) {
  46. //                $this->requestStack->getSession()->getFlashBag()->add(
  47. //                    'danger',
  48. //                    'Z bezpečnostných dôvodov si musíte <a href="/my-password-change">zmeniť heslo</a>!'
  49. //                );
  50. //            }
  51.         }
  52.     }
  53.     public static function getSubscribedEvents() {
  54.         return [
  55.             KernelEvents::CONTROLLER => 'onKernelController',
  56.         ];
  57.     }
  58. }