<?php
namespace App\EventListener;
use Sylius\Bundle\UserBundle\Event\UserEvent;
use Sylius\Component\Core\Model\ShopUserInterface;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
/**
* Ajoute une clé dans la session pour indiquer
* qu'on est connecté sur le compte d'un client
* via le bouton "Se connecté en tant que" depuis l'admin.
*/
final class UserImpersonatedListener
{
private $session;
public function __construct(SessionInterface $session) {
$this->session = $session;
}
public function onUserImpersonated(UserEvent $event): void
{
$user = $event->getUser();
if (!$user instanceof ShopUserInterface) {
return;
}
// dump($user);
$this->session->set('admin_impersonate_shop_user_id', $user->getId());
}
}