<?php
namespace App\EventListener\JWT;
use App\Entity\Staff\Staff;
use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
class JWTCreatedListener
{
public function onJWTCreated(JWTCreatedEvent $event)
{
$payload = $event->getData();
$user = $event->getUser();
foreach ($user->getEstablishmentStaff() as $establishmentStaffCollection){
$establishmentStaff = $establishmentStaffCollection;
}
if ($user instanceof Staff) {
$payload['uuid'] = $user->getUuid();
$payload['lastname'] = $user->getLastname();
$payload['firstname'] = $user->getFirstname();
$payload['active'] = $user->isActive();
$payload['deleted'] = $user->isDeleted();
$payload['establishmentStaff'] = $establishmentStaff->getId();
$payload['position'] = $establishmentStaff->getPosition()->getId();
}
$event->setData($payload);
$header = $event->getHeader();
$header['cty'] = 'JWT';
$event->setHeader($header);
}
}