src/EventListener/UserImpersonatedListener.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Sylius\Bundle\UserBundle\Event\UserEvent;
  4. use Sylius\Component\Core\Model\ShopUserInterface;
  5. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  6. /**
  7.  * Ajoute une clé dans la session pour indiquer 
  8.  * qu'on est connecté sur le compte d'un client
  9.  * via le bouton "Se connecté en tant que" depuis l'admin.
  10.  */
  11. final class UserImpersonatedListener
  12. {
  13.     private $session;
  14.     public function __construct(SessionInterface $session) {
  15.         $this->session $session;
  16.     }
  17.     public function onUserImpersonated(UserEvent $event): void
  18.     {
  19.         $user $event->getUser();
  20.         if (!$user instanceof ShopUserInterface) {
  21.             return;
  22.         }
  23.         // dump($user);
  24.         $this->session->set('admin_impersonate_shop_user_id'$user->getId());
  25.     }
  26. }