<?php
namespace App\EventListener;
use App\Entity\User;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
/**
* Description of JWTAuthenticatedListener
*
*/
class AuthenticationSuccessListener
{
public function __construct(RequestStack $request){
$this->requestStack = $request;
}
/**
* @param AuthenticationSuccessEvent $event
*/
public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event)
{
$request = $this->requestStack->getCurrentRequest();
$user = $event->getUser();
$congeUnity = abs($user->getSolde()) > 1 ? 'jrs' : 'jrs';
$autorisationUnity = $user->getSoldeAutorisation() > 1 ? 'h' : 'h';
$isAutorisateConge = $user->getIsAutorisateConge();
$path = str_replace(['/app.php','/app_dev.php'], "", $request->getUriForPath("/uploads/avatars/"));
$event->setData([
'token' => $event->getData()['token'],
'enabled' => $user->getEnabled(),
'isAutorisateConge' => $isAutorisateConge,
'id' => $user->getId(),
'userName' => $user->getUsername(),
'fullName' => $user->getFullName(),
'path' => $path.$user->getPath(),
'groupe' => $user->getGroupe()->getName(),
'fonction' => $user->getFonction()->getName(),
'phone' => $user->getPhone(),
'fixe' => $user->getFixe(),
'email' => $user->getEmail(),
'soldeConge' => $isAutorisateConge ? $user->getSolde().' '.$congeUnity : '0 jrs',
'realSolde' => $isAutorisateConge ? $user->getRealSolde().' '.$congeUnity : '0 jrs',
'cumuleAutorisation' => $isAutorisateConge ? $user->getSoldeAutorisation().' '.$autorisationUnity : '0 h',
'roles' => $user->getRoles()
]);
}
}