src/Lci/BoilerBoxBundle/Listeners/checkLoginListener.php line 35

Open in your IDE?
  1. <?php
  2. //var/www/html/BoilerBox.fr/BoilerBox/src/Lci/BoilerBoxBundle/Listeners/checkLoginListener.php
  3. //
  4. // appelé sur l'evenement kernel.event.listener cad à chaque appel de nouvelle page
  5. //
  6. namespace Lci\BoilerBoxBundle\Listeners;
  7. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  8. use Symfony\Component\HttpFoundation\Session\Session;
  9. use Lci\UserBundle\Listeners\detectLogin;
  10. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
  11. use Symfony\Bundle\FrameworkBundle\Routing\Router;
  12. use Symfony\Component\HttpFoundation\RedirectResponse;
  13. class checkLoginListener {
  14.     protected $session;
  15.     protected $detectLogin;
  16.     protected $tokenSecurity;
  17.     protected $serviceLog;
  18.     protected $serviceRouter;
  19.     protected $dateConnexion;
  20.     public function __construct(Router $routerdetectLogin $detectLoginSession $sessionTokenStorage $tokenSecurity$serviceLog) {
  21.         $this->detectLogin         $detectLogin;
  22.         $this->session             $session;
  23.         $this->tokenSecurity     $tokenSecurity;
  24.         $this->serviceLog         $serviceLog;
  25.         $this->serviceRouter     $router;
  26.         $date                     = new \Datetime();
  27.         $this->dateConnexion     $date->format('d-m-Y à H:i:s');
  28.     }
  29.     public function checkLogin(GetResponseEvent $event
  30.     {
  31.         $this->serviceLog->setLog('route : '.$event->getRequest()->get('_route'), 'connexions.log');
  32.         if ($this->tokenSecurity->getToken()) 
  33.         {
  34.             $user $this->tokenSecurity->getToken()->getUser();
  35.             if (gettype($user) != "string"
  36.             {
  37.                 // Si la variable de session d'autorisation n'est pas définie a true on revoit vers la page de connexion
  38.                 if (
  39.                     ($event->getRequest()->get('_route') !== 'fos_user_security_login') &&
  40.                     ($event->getRequest()->get('_route') !== 'lci_boilerbox_accesSite') &&
  41.                     ($event->getRequest()->get('_route') !== '') &&
  42.                     ($event->getRequest()->get('_route') !== 'lci_boilerbox_index') &&
  43.                     ($event->getRequest()->get('_route') !== 'lci_cgu_lecture')
  44.                 ) {
  45.                     // Autorisation d'accès aux pages pour l'administateur et pour les utilisateurs dont la var de session auth est définie à true
  46.                     if (($this->tokenSecurity->getToken()->getUser()->getUSername() != 'Admin') && (($this->session->get('auth') === false) || ($this->session->get('auth') === null))) {
  47.                         $route "fos_user_security_logout";
  48.                         if ($route != $event->getRequest()->get('_route')) {
  49.                             $url         $this->serviceRouter->generate($route);
  50.                             $response     = new RedirectResponse($url);
  51.                             $event->setResponse($response);
  52.                         }
  53.                     }
  54.                 }
  55.             }
  56.         }
  57.     }
  58. }