parent
eef81dce65
commit
8e97fcbaed
@ -0,0 +1,66 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
namespace Chamilo\CoreBundle\EventListener; |
||||
|
||||
use Chamilo\CoreBundle\Entity\Course; |
||||
use Chamilo\SettingsBundle\Manager\SettingsManager; |
||||
use Chamilo\UserBundle\Entity\User; |
||||
use Symfony\Component\HttpFoundation\Session\Session; |
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent; |
||||
use Symfony\Component\HttpKernel\HttpKernelInterface; |
||||
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; |
||||
|
||||
/** |
||||
* Class UserLocaleListener |
||||
* |
||||
* Stores the locale of the user in the session after the |
||||
* login. This can be used by the LocaleListener afterwards. |
||||
* |
||||
* Priority order: platform -> user |
||||
* Priority order: platform -> user -> course |
||||
* |
||||
* @package Chamilo\CoreBundle\EventListener |
||||
*/ |
||||
class UserLocaleListener |
||||
{ |
||||
/** |
||||
* @var Session |
||||
*/ |
||||
private $session; |
||||
|
||||
/** |
||||
* UserLocaleListener constructor. |
||||
* @param Session $session |
||||
*/ |
||||
public function __construct(Session $session) |
||||
{ |
||||
$this->session = $session; |
||||
} |
||||
|
||||
/** |
||||
* Set locale when user enters the platform |
||||
* @param InteractiveLoginEvent $event |
||||
*/ |
||||
public function onInteractiveLogin(InteractiveLoginEvent $event) |
||||
{ |
||||
$languages = ['english' => 'en', 'spanish' => 'es', 'french' => 'fr']; |
||||
|
||||
/** @var User $user */ |
||||
$token = $event->getAuthenticationToken(); |
||||
|
||||
if ($token) { |
||||
$user = $token->getUser(); |
||||
if ($user && isset($languages[$user->getLanguage()])) { |
||||
$user->setLocale($languages[$user->getLanguage()]); |
||||
$this->session->set('_locale', $user->getLocale()); |
||||
$this->session->set('_locale_user', $user->getLocale()); |
||||
} |
||||
} |
||||
|
||||
/*if (null !== $user->getLocale()) { |
||||
$this->session->set('_locale', $user->getLocale()); |
||||
$this->session->set('_locale_user', $user->getLocale()); |
||||
}*/ |
||||
} |
||||
} |
||||
Loading…
Reference in new issue