<?php
namespace App\ProPneu\Service\MetierManagerBundle\EventListener;
use App\ProPneu\Service\MetierManagerBundle\Utils\ServiceName;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
/**
* Class PpLoginListener
* @package App\ProPneu\Service\MetierManagerBundle\EventListener
*/
class PpLoginListener
{
private $_container;
/**
* PpLoginListener constructor.
* @param ContainerInterface $_container
*/
public function __construct(ContainerInterface $_container)
{
$this->_container = $_container;
}
/**
* @param InteractiveLoginEvent $_event
* @throws \Exception
*/
public function onSecurityInteractiveLogin(InteractiveLoginEvent $_event)
{
$_timezone = $_event->getRequest()->request->get('_timezone') ?? 0;
$_event->getAuthenticationToken()->setAttribute('_timezone',$_timezone);
$_user = $_event->getAuthenticationToken()->getUser();
$_utils_manager = $this->_container->get(ServiceName::SRV_METIER_UTILS);
$_user_agent = $_event->getRequest()->headers->get('user-agent');
$_browser = $_utils_manager->getBrowser($_user_agent);
$_os = $_utils_manager->getOS($_user_agent);
$this->_container->get(ServiceName::SRV_METIER_USER)->saveConnexionHistory($_user, $_browser, $_os, $_timezone);
}
}