src/Controller/LegacyController.php line 47

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Empire\Core\Core;
  4. use Empire\Legacy\Menu;
  5. use Empire\Legacy\publicpage;
  6. use Symfony\Component\Asset\Packages;
  7. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\HttpFoundation\ResponseHeaderBag;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Twig\Markup;
  13. /**
  14.  * Class LegacyController
  15.  * @package App\Controller
  16.  *
  17.  * Contains the controllers for the remaining public legacy pages.
  18.  */
  19. class LegacyController extends BaseController {
  20.     /**
  21.      * @Route("Public/Reference/showdocument.php")
  22.      * @param Request $request
  23.      * @return BinaryFileResponse|\Symfony\Component\HttpFoundation\RedirectResponse
  24.      */
  25.     public function legacy_doclib(Request $request) {
  26.         $clearance =  Core::user() !== null Core::user()->getClearance()->order 0;
  27.         $file $request->query->get('file'null);
  28.         if($file !== null) {
  29.             return $this->redirect("/p/library/" $file);
  30.         } else {
  31.             $this->addFlash('error''Missing Reference Number');
  32.             return $this->redirect('/Public/Reference/doclibrary.php');
  33.         }
  34.     }
  35.     /**
  36.      * @Route("gejs.php")
  37.      * @param Request $request
  38.      * @return Response
  39.      */
  40.     public function legacy_gejs(Request $request) {
  41.         ini_set('html_errors'0);
  42.         $input json_decode($request->getContent(), true);
  43.         $gejs = new \Empire\Core\GEjs(isset($input['gejsOptions']) ? $input['gejsOptions'] : null);
  44.         //var_dump($input, $gejs);
  45.         $response = new Response();
  46.         $response->setContent(json_encode($gejs->processSecureAjax(
  47.             $input['gejsFunction'],
  48.             isset($input['gejsValues']) ? $input['gejsValues'] : [],
  49.             isset($input['gejsCid']) ? $input['gejsCid'] : null
  50.         )));
  51.         $response->headers->set('Content-Type''application/json');
  52.         //Do not enable this for production!
  53.         //$response->headers->set('Access-Control-Allow-Origin', '*');
  54.         return $response;
  55.     }
  56.     /**
  57.      * @Route("/Public/{path}", requirements={"path"=".*"})
  58.      * @param $path
  59.      * @return object|Response
  60.      */
  61.     public function legacy_public(Packages $assets$path) {
  62.         if(preg_match('/\.php$/'$path) && file_exists(EMPIRE_APPLICATION "/legacy/Public/" $path)) {
  63.             /* Try and get the path category, otherwise fallback to Main */
  64.             $pageInfo Menu::getPacaId(substr(Core::get('fullPage'), 1));
  65.             $menu_category = isset($pageInfo->PACA_ID) ? $pageInfo->PACA_ID 0;
  66.             require_once EMPIRE_APPLICATION '/legacy/globalfunctions.php';
  67.             /* Load legacy content and return it */
  68.             ob_start();
  69.             require EMPIRE_APPLICATION "/legacy/Public/" $path;
  70.             //Deal with GEjs
  71.             if(isset($gejs))
  72.                 $gejs array_unique(array_merge((array) $gejs, array("ajax")));
  73.             else
  74.                 $gejs = ["ajax"];
  75.             return $this->render('legacy.twig', [
  76.                 'content' => ob_get_clean(),
  77.                 'headerDiv' => new Markup(publicpage::displayHeaderDiv($menu_category), 'UTF-8'),
  78.                 'title' => is_object($pageInfo) ? $pageInfo->SEPA_TITLE '',
  79.                 'gejs' => $gejs,
  80.             ]);
  81.         } elseif(file_exists(EMPIRE_APPLICATION "/legacy/Public/" $path)) {
  82.             if(is_dir(EMPIRE_APPLICATION "/legacy/Public/" $path)) {
  83.                 return $this->redirect(Core::get('base_url') . "Public/" $path "index.php");
  84.             }
  85.             return new BinaryFileResponse(EMPIRE_APPLICATION "/legacy/Public/" $path);
  86.         } else {
  87.             return (new Response())->setStatusCode(404);
  88.         }
  89.     }
  90.     /**
  91.      * @Route("/Members/{file}")
  92.      * @param Packages $assets
  93.      * @param $file
  94.      * @return mixed
  95.      */
  96.     public function legacy_members(Packages $assets$file) {
  97.         $lc Core::loginCheck();
  98.         if($lc) return new Response($lc);
  99.         if(preg_match('/\.php$/'$file) && file_exists(EMPIRE_APPLICATION "/legacy/Members/" $file)) {
  100.             /* Try and get the path category, otherwise fallback to Main */
  101.             $pageInfo = \Empire\Legacy\Menu::getPacaId(substr(Core::get('fullPage'), 1));
  102.             require EMPIRE_APPLICATION '/legacy/globalfunctions.php';
  103.             /* Setup for the pages */
  104.             $objUser Core::user();
  105.             $GLOBALS['gImagePath'] = $assets->getUrl('''gfx');
  106.             $GLOBALS['gLegacyImagePath'] = Core::get('base_url');
  107.             $GLOBALS['gJSPath'] = $assets->getUrl('''js');
  108.             $GLOBALS['gCSSPath'] = $assets->getUrl('''css');
  109.             $GLOBALS['gURLPath'] = Core::get('base_url');
  110.             $flash = \Empire\Core\GEContext::getContext()->getFlash();
  111.             /* Load legacy content and return it */
  112.             ob_start();
  113.             require EMPIRE_APPLICATION "/legacy/Members/"$file;
  114.             /** Potential Redirect */
  115.             if(isset($redirect)) {
  116.                 return $this->redirect($redirect[0]);
  117.             }
  118.             //Deal with GEjs
  119.             if(isset($gejs))
  120.                 $gejs array_unique(array_merge((array) $gejs, array("ajax")));
  121.             else
  122.                 $gejs = ["ajax"];
  123.             //Deal with asset loading
  124.             Core::set('secure',isset($isSecure) ? $isSecure false);
  125.             // Check for page security.
  126.             return $this->render('legacy.twig', [
  127.                 'content' => ob_get_clean(),
  128.                 'headerDiv' => new Markup(publicpage::displayHeaderDiv(0), 'UTF-8'),
  129.                 'title' => $pageInfo->SEPA_TITLE,
  130.                 'gejs' => $gejs,
  131.             ]);
  132.         } elseif(file_exists(EMPIRE_APPLICATION "/legacy/Members/" $file)) {
  133.             if(is_dir(EMPIRE_APPLICATION "/legacy/Members/" $file)) {
  134.                 return $this->redirect(Core::get('base_url') . "Members/" $file "index.php");
  135.             }
  136.             return new BinaryFileResponse(EMPIRE_APPLICATION "/legacy/Members/" $file);
  137.         } else {
  138.             return (new Response())->setStatusCode(404);
  139.         }
  140.     }
  141. }