src/EventSubscriber/LocaleSubscriber.php line 39
<?phpnamespace App\EventSubscriber;use App\Common\Functions\DbFunction;use App\Common\Functions\Helpers;use App\Common\Globals\MainGlobals;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpKernel\KernelEvents;use Symfony\Component\HttpKernel\Event\RequestEvent;use Doctrine\ODM\MongoDB\DocumentManager;use Symfony\Component\Yaml\Yaml;class LocaleSubscriber implements EventSubscriberInterface{private $public_urls = [];public function __construct(public DocumentManager $dm){$this->public_urls = ['\\/login', '\\/auth', '\\/forget\\-password', '\\/check\\-reset\\-code', '\\/reset\\-password'];}public static function getSubscribedEvents(){return array(KernelEvents::REQUEST => array(array('onKernelRequest', 200)),);}private function checkApp($request){if($request->getMethod() == "GET"){return true;}$currentPath = $request->getPathInfo();if(!MainGlobals::$app){return preg_match('/'.implode('|', $this->public_urls).'/i', $currentPath);}return false;}public function onKernelRequest(RequestEvent $event){$request = $event->getRequest();if($request->headers->has('stripe-signature')){return null;}if ($request->headers->has("Accept-Language")) {$locale = $request->headers->get('Accept-Language');$request->setLocale($locale);}if($request->headers->has('secure-key')) {if($request->headers->get("secure-key") == 'ukkera-admins'){MainGlobals::$secure = 'ukkera-admins';}}$funs = [];$headers = $request->headers->all();foreach ($headers as $k => $v) {$funs[Helpers::capital($k)] = $v[0] ?? $v;}$vals = Helpers::MergeCallingFunction($funs, HeaderFetch::class, $this->dm);MainGlobals::$extra = array_merge(...$vals);if(!$this->checkApp($request)){if(!(MainGlobals::$app->id ?? false )){return $event->setResponse(new JsonResponse(['error'=> 'Invalid server key'], 401));}$date = new \DateTime();if (MainGlobals::$app->de_date && MainGlobals::$app->de_date < $date) {return $event->setResponse(new JsonResponse(['error' => 'deactivated app'], 401));}}if(MainGlobals::$app && MainGlobals::$app->fetch){MainGlobals::$extra = DbFunction::FetchExtra($this->dm, MainGlobals::$app->fetch);}MainGlobals::$extra = [...MainGlobals::$extra, ...$vals];if(MainGlobals::$app->main_app ?? false){MainGlobals::$apps = DbFunction::getList($this->dm, 'apps__app', ['main_app'=>MainGlobals::$app->main_app]);}if(MainGlobals::$app ?? false){$config_path = dirname(__DIR__) . '/configs/models';$files = scandir($config_path);foreach ($files as $file) {if ($file !== '.' && $file !== '..') {$data = Yaml::parseFile($config_path . '/' . $file);MainGlobals::$modules = array_merge(MainGlobals::$modules, $data);}}}}}