Internal: Set user locale on session when switching user

pull/5960/head
Angel Fernando Quiroz Campos 8 months ago
parent 0311de2615
commit 0b68242f61
No known key found for this signature in database
GPG Key ID: B284841AE3E562CD
  1. 33
      src/CoreBundle/EventSubscriber/SwitchUserSubscriber.php

@ -0,0 +1,33 @@
<?php
/* For licensing terms, see /license.txt */
declare(strict_types=1);
namespace Chamilo\CoreBundle\EventSubscriber;
use Chamilo\CoreBundle\Entity\User;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\Event\SwitchUserEvent;
class SwitchUserSubscriber implements EventSubscriberInterface
{
public function onSecuritySwitchUser(SwitchUserEvent $event): void
{
$request = $event->getRequest();
if ($request->hasSession() && ($session = $request->getSession())) {
/** @var User $user */
$user = $event->getTargetUser();
$session->set('_locale_user', $user->getLocale());
}
}
public static function getSubscribedEvents(): array
{
return [
'security.switch_user' => 'onSecuritySwitchUser',
];
}
}
Loading…
Cancel
Save