<?php
/**
* Copyright (c) 2019 by Noma Solutions.
* This software is the proprietary information of Noma Solutions.
*
* All Right Reserved.
*/
namespace NomaSolutions\ApiBundle\Listener;
use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
use NomaSolutions\API\Model\AccountInterface;
use NomaSolutions\API\Model\ImpersonatableUser;
use Symfony\Component\HttpFoundation\RequestStack;
class JWTCreatedListener
{
/**
* @param JWTCreatedEvent $event
*
* @return void
*/
public function onJWTCreated(JWTCreatedEvent $event)
{
$payload = $event->getData();
/** @var AccountInterface $user */
$user = $event->getUser();
$payload['id'] = $user->getId();
if ($user instanceof ImpersonatableUser) {
$payload['impersonated'] = $user->isImpersonated();
}
$event->setData($payload);
}
}