src/EventSubscriber/RequestSubscriber.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Util\EsUtil;
  4. use App\Entity\Container;
  5. use Doctrine\DBAL\Types\Type;
  6. use Symfony\Component\Intl\Timezones;
  7. use App\Doctrine\Types\UTCDateTimeType;
  8. use Symfony\Component\Security\Core\Security;
  9. use Symfony\Component\HttpKernel\Event\RequestEvent;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. class RequestSubscriber implements EventSubscriberInterface
  12. {
  13.     public function __construct(private Security $security)
  14.     {}
  15.     
  16.     public function onKernelRequest(RequestEvent $event)
  17.     {
  18.         if (!$event->isMasterRequest()) {
  19.             return;
  20.         }
  21.         $request $event->getRequest();
  22.         // Set current timezone as per user
  23.         $timezone false;
  24.         $user $this->security->getUser();
  25.         if ($user && $user->getTimezone()) {
  26.             $timezone $user->getTimezone();
  27.         } else {
  28.             $timezone $request->headers->get('ES-TIMEZONE'false);
  29.         }
  30.         if (empty($timezone)) {
  31.             $timezone 'UTC';
  32.         }
  33.         if (!defined('_USER_TIMEZONE_')) {
  34.             define('_USER_TIMEZONE_'$timezone);
  35.         }
  36.         date_default_timezone_set(_USER_TIMEZONE_);
  37.         // Doctrine datetime type override
  38.         Type::overrideType('datetime'UTCDateTimeType::class);
  39.         Type::overrideType('datetimetz'UTCDateTimeType::class);
  40.         /*
  41.         $request = $event->getRequest();
  42.         
  43.         $key = $request->headers->get('ES-KEY', null);
  44.         $domain = EsUtil::getDomainFromKey($key);
  45.         if (!$domain) {
  46.             $domain = $request->server->get('HTTP_HOST', null);
  47.         }
  48.         $client = null;
  49.         $user = $this->security->getUser();
  50.         if ($user) {
  51.             $client = $user->getClient();
  52.             $con = EsUtil::getContainerFromDomain($client, $domain);
  53.             $request->attributes->set('ES_CONTAINER', $con);
  54.         }
  55.         $request->attributes->set('ES_CLIENT', $client);
  56.         */
  57.     }
  58.     public static function getSubscribedEvents(): array
  59.     {
  60.         return [
  61.             'kernel.request' => [
  62.                 ['onKernelRequest'4]
  63.             ]
  64.         ];
  65.     }
  66. }