src/EventSubscriber/CoreEventsSubscriber.php line 106

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Controller\SecurePageInterface;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Empire\Core\Core;
  6. use Exception;
  7. use Psr\Log\LoggerInterface;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. use Symfony\Component\HttpFoundation\RequestStack;
  12. use Symfony\Component\HttpFoundation\RedirectResponse;
  13. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  14. use Symfony\Component\HttpKernel\KernelEvents;
  15. use Symfony\Component\Routing\RequestContext;
  16. use Twig\Environment;
  17. class CoreEventsSubscriber implements EventSubscriberInterface
  18. {
  19.     private $request;
  20.     private $session;
  21.     private $requestStack;
  22.     private $resolver;
  23.     private $logger;
  24.     public function __construct (
  25.             EntityManagerInterface $entityManager,
  26.             RequestStack $request,
  27.             RequestContext $rc,
  28.             Environment $twig,
  29.             RequestStack $requestStack,
  30.             LoggerInterface $logger
  31.             //ControllerResolver $resolver
  32.     ) {
  33.         Core::setDB($entityManager->getConnection());
  34.         //$this->connection = $entityManager->getConnection();
  35.         Core::set('version''8.5.1' trim(file_exists(EMPIRE_WEBROOT '/VERSION') ? '-'file_get_contents(EMPIRE_WEBROOT '/VERSION') : ''));
  36.         $port $rc->getHttpPort();
  37.         if ($port != 80 && $port != 443) {
  38.             $port ':' $port;
  39.         } else {
  40.             $port '';
  41.         }
  42.         if($port == ':') {
  43.             $port '';
  44.         }
  45.         $base_url $rc->getScheme() . "://" $rc->getHost() . $port "/" $rc->getBaseUrl();
  46.         $this->request $request->getCurrentRequest();
  47.         Core::set('base_url'$base_url);
  48.         $this->requestStack $requestStack;
  49.         $this->session $this->requestStack->getSession();
  50.         Core::setSession($this->session);
  51.         Core::setTwig($twig);
  52.         //$this->resolver = $resolver;
  53.         $this->logger $logger;
  54.         Core::set('discord.guild'"503020279136649250");
  55.         Core::set('discord.token'"NTAzMTc1OTE5MDA4MjE5MTQ2.DqyrLQ.d4W-wNoNGUORjnudyx0bdmJkle8");
  56.         Core::set('discord.clientid'"503175919008219146");
  57.         Core::set('discord.clientse'"0coE9mZSGpOXkPZkiL5rOOwDL4WcfTZN");
  58.         Core::set('discord.botname'"Bot"); // Name of the ROLE in discord server
  59.         Core::set('discord.postINB'true); // Keep disabled for now
  60.         Core::set('discord.dev.inb.webhookUrl'"https://discord.com/api/webhooks/1086305402221772951/shyH8ajqj7PnDrV3cWiLK3zorihe-rmVyPc14UZL2RZCRpuhUnR15S5qPHZ-UIdtsCne");
  61.         Core::set('discord.dev.inb.avatarUrl''https://swc-empire.com/assets/uploads/image_26_MmM3ZGM0M2_empire-logo-large.png');
  62.         Core::set('discord.dev.inb.username''DEV Imperial News Bureau');
  63.         Core::set('discord.membersLinkEnabled'false); // If set to false: Individual Overwrite via Access-Key 'Discord-Release'
  64.         Core::set('discord.imperialRole'"887246214549090365");
  65.         Core::set('discord.recruitRole'"1326892381412392981");
  66.         Core::set('discord.tier1'"888688878431662110");
  67.         Core::set('discord.tier2'"888688794621083669");
  68.         Core::set('discord.tier3'"888688698424696883");
  69.         Core::set('discord.tier4'"888688420463980605");
  70.         
  71.         Core::set('combine.local.clientid'"88c010af5ac65fe9d466f9168a2d5e3046d7dc84");
  72.         Core::set('combine.local.clientse'"3afdfa21d092c8ed6bbd5e3c4289ff3fbfd16d7b");
  73.         Core::set('combine.dev.clientid'"65b86ccb18fe01e20e39f10236574a5ae5c56127");
  74.         Core::set('combine.dev.clientse'"77a8cda2e4e0218a4c116a6c0c11fda7b7646e35");
  75.         Core::set('combine.prod.clientid'"4d2974503f6f59966386378879b18467734ff054");
  76.         Core::set('combine.prod.clientse'"94895db6fb9ee1846a3242118d1217e0ae84b5be");
  77.     }
  78.     /**
  79.      * @inheritDoc
  80.      * @return Array
  81.      */
  82.     public static function getSubscribedEvents()
  83.     {
  84.         return [
  85.             KernelEvents::CONTROLLER =>  [['pathInfo'50],['loginSetup'99], ['loginCheck'0]]
  86.         ];
  87.     }
  88.     public function pathInfo(ControllerEvent $event) {
  89.         Core::set('fullPage'explode("~",$this->request->getPathInfo())[0]);
  90.         Core::set('secure'false);
  91.     }
  92.     public function loginSetup(ControllerEvent $event) {
  93.         $request $this->request;
  94.         $this->logger->info('irms_token: ' $request->cookies->get('irms_token') );
  95.         $this->logger->info('member_id: ' $this->session->get('irms_token') );
  96.         if($request->cookies->get('irms_token') && !$this->session->get('member_id')) {
  97.             try {
  98.                 \Empire\Core\Login::cookieLogin($request->cookies->get('irms_token'));
  99.             } catch (Exception $ex) {
  100.                 $this->session->getFlashBag()->add('error''While attempting to remember your login, the following error occurred: ' $ex->getMessage());
  101.             }
  102.         }
  103.         if($request->request->get('login')) {
  104.             try {
  105.                 $getLogin = \Empire\Core\Login::processLogin($request);
  106.             } catch (Exception $ex) {
  107.                 $getLogin false;
  108.                 $this->session->getFlashBag()->add('error''While attempting to login, the following error occured: ' $ex->getMessage());
  109.             }
  110.             if ($getLogin) {
  111.                 if($request->request->get('rememberMe'false)) {
  112.                     try {
  113.                         \Empire\Core\Login::setLoginCookie();
  114.                     } catch (Exception $e) {
  115.                         $this->session->getFlashBag()->add('error'$e->getMessage());
  116.                     }
  117.                 }
  118.             } else {
  119.                 $this->session->getFlashBag()->add('error''Unable to log you in.');
  120.             }
  121.         }
  122.         Core::setUser(\Empire\Core\Login::getLoggedIn());
  123.         $redirectUrl $request->request->get('redirectUrl');
  124.         if ($redirectUrl != null ) {
  125.             $event->setController(function() use ($redirectUrl) {
  126.                 return new RedirectResponse(urldecode($redirectUrl));
  127.             });
  128.         }
  129.         $referer $request->headers->get('referer');
  130.         if (!is_null($referer)) {
  131.             return new RedirectResponse($referer);
  132.         }
  133.     }
  134.     public function loginCheck(ControllerEvent $event) {
  135.         $controller $event->getController();
  136.         if(is_array($controller)) $controller $controller[0];
  137.         if($controller instanceof SecurePageInterface) {
  138.             $resp Core::loginCheck();
  139.             if($resp instanceof Response) {
  140.                 $event->setController(function () use ($resp) {
  141.                    return $resp;
  142.                 });
  143.             }
  144.             Core::set('secure'true);
  145.         }
  146.     }
  147. }