src/Utils/Uniqskills/DomainListener.php line 51

Open in your IDE?
  1. <?php
  2. namespace App\Utils\Uniqskills;
  3. use App\Entity\Gos\PortalSettings;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpKernel\Event\RequestEvent;
  8. class DomainListener
  9. {
  10.     private EntityManagerInterface $em;
  11.     public function __construct(EntityManagerInterface $em)
  12.     {
  13.         $this->em $em;
  14.     }
  15.     public function domainListener(RequestEvent $event)
  16.     {
  17.         $request        $event->getRequest();
  18.         $domain         $request->getHttpHost();
  19.         $portalSettings $this->em->getRepository(PortalSettings::class)->findOneByUniqskillsDomain($domain);
  20.         if (empty($portalSettings))
  21.         {
  22.             $portalSettings $this->em->getRepository(PortalSettings::class)->findDefaultForUniqskills();
  23.             $schema         $_ENV['USING_HTTPS'] ? 'https://' 'http://';
  24.             $url            $schema $portalSettings->getDomain();
  25.             $request->getSession()->set('portalSettingsHash'$portalSettings->getHash());
  26.             $event->setResponse(new RedirectResponse($url));
  27.         }
  28.         $request->getSession()->set('portalSettingsHash'$portalSettings->getHash());
  29.         $request->getSession()->set('domain'$portalSettings->getId());
  30.     }
  31.     public function getRequestSource(Request $request)
  32.     {
  33.         if ($request->attributes->get('source'false))
  34.         {
  35.             $source $request->attributes->get('source');
  36.             $request->getSession()->set('source'$source);
  37.             return $source;
  38.         }
  39.         $referer Request::create($request->headers->get('referer'));
  40.         if ($referer->attributes->get('source'false))
  41.         {
  42.             $source $referer->attributes->get('source');
  43.             $request->getSession()->set('source'$source);
  44.             return $source;
  45.         }
  46.         if ($request->getSession()->get('source'false))
  47.         {
  48.             return $request->getSession()->get('source');
  49.         }
  50.         return 'gos';
  51.     }
  52.     public function checkCountryCode(Request $request): void
  53.     {
  54.         $fixCode $request->get('fixCountryCode');
  55.         if (!is_null($fixCode) && strlen($fixCode) == 2)
  56.         {
  57.             $fixCode strtoupper($fixCode);
  58.             $request->getSession()->set('myCountryCode'$fixCode);
  59.             $request->getSession()->set('fixCountryCode'$fixCode);
  60.         }
  61.     }
  62. }