Skip to content
Snippets Groups Projects
CoreController.php 4.59 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    /**
     * Copyright Maarch since 2008 under licence GPLv3.
     * See LICENCE.txt file at the root folder for more details.
     * This file is part of Maarch software.
     */
    
    /**
     * @brief Core Controller
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
    namespace SrcCore\controllers;
    
    use Basket\models\GroupBasketModel;
    
    Damien's avatar
    Damien committed
    use Group\controllers\ServiceController;
    
    use Group\models\ServiceModel;
    
    Damien's avatar
    Damien committed
    use Slim\Http\Request;
    use Slim\Http\Response;
    
    Damien's avatar
    Damien committed
    use SrcCore\models\CoreConfigModel;
    
    Damien's avatar
    Damien committed
    use User\models\UserModel;
    
    Damien's avatar
    Damien committed
    require_once 'core/class/Url.php';
    
    
    Damien's avatar
    Damien committed
        public function initialize(Request $request, Response $response)
    
        {
            $aInit = [];
            $aInit['coreUrl'] = str_replace('rest/', '', \Url::coreurl());
    
            $aInit['applicationName'] = CoreConfigModel::getApplicationName();
    
            $aInit['applicationMinorVersion'] = CoreConfigModel::getApplicationVersion()['applicationMinorVersion'];
    
    Damien's avatar
    Damien committed
            $aInit['lang'] = CoreConfigModel::getLanguage();
    
            $aInit['user'] = UserModel::getByUserId(['userId' => $GLOBALS['userId'], 'select' => ['id', 'user_id', 'firstname', 'lastname']]);
    
            $aInit['scriptsToinject'] = [];
    
            $scriptsToInject = [];
            $scripts = scandir('dist');
            foreach ($scripts as $value) {
    
    Damien's avatar
    Damien committed
                if (strstr($value, 'runtime.') !== false || strstr($value, 'main.') !== false || strstr($value, 'vendor.') !== false || strstr($value, 'scripts.') !== false) {
    
                    if (strstr($value, '.js.map') === false) {
    
                        $scriptsToInject[] = $value;
    
            for ($i = 0; $i < count($scriptsToInject); $i++) {
                foreach ($scriptsToInject as $value) {
                    if ($i == 0 && strstr($value, 'scripts.') !== false) {
                        $aInit['scriptsToinject'][] = $value;
    
                    } elseif ($i == 1 && strstr($value, 'main.') !== false) {
    
                        $aInit['scriptsToinject'][] = $value;
    
                    } elseif ($i == 2 && strstr($value, 'runtime.') !== false) {
    
                        $aInit['scriptsToinject'][] = $value;
    
                    } elseif ($i == 3 && strstr($value, 'vendor.') !== false) {
    
                        $aInit['scriptsToinject'][] = $value;
                    }
                }
    
    Damien's avatar
    Damien committed
        public function getHeader(Request $request, Response $response)
        {
            $user = UserModel::getByUserId(['userId' => $GLOBALS['userId'], 'select' => ['id', 'user_id', 'firstname', 'lastname']]);
            $user['groups'] = UserModel::getGroupsByUserId(['userId' => $GLOBALS['userId']]);
            $user['entities'] = UserModel::getEntitiesById(['userId' => $GLOBALS['userId']]);
    
            $user['indexingGroups'] = [];
    
    Damien's avatar
    Damien committed
    
            if ($GLOBALS['userId'] == 'superadmin') {
                $menu = ServiceModel::getApplicationServicesByXML(['type' => 'menu']);
                $menuModules = ServiceModel::getModulesServicesByXML(['type' => 'menu']);
                $menu = array_merge($menu, $menuModules);
            } else {
                $menu = ServiceController::getMenuServicesByUserId(['userId' => $GLOBALS['userId']]);
    
                foreach ($menu as $value) {
    
    Damien's avatar
    Damien committed
                    if ($value['id'] == 'index_mlb') {
    
                        foreach ($user['groups'] as $group) {
                            if (GroupBasketModel::hasBasketByGroupId(['groupId' => $group['group_id'], 'basketId' => 'IndexingBasket'])) {
                                $user['indexingGroups'][] = ['groupId' => $group['group_id'], 'label' => $group['group_desc']];
                            }
                        }
                    }
                }
    
    Damien's avatar
    Damien committed
            }
    
            return $response->withJson([
                'user'  => $user,
                'menu'  => $menu
            ]);
        }
    
    
    Damien's avatar
    Damien committed
        public static function getAdministration(Request $request, Response $response)
    
    Damien's avatar
    Damien committed
        {
    
    Damien's avatar
    Damien committed
            if (!ServiceModel::hasService(['id' => 'admin', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'menu'])) {
                return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
            }
    
    
    Damien's avatar
    Damien committed
            if ($GLOBALS['userId'] == 'superadmin') {
    
                $administration                    = [];
    
    Damien's avatar
    Damien committed
                $administrationApplication         = ServiceModel::getApplicationServicesByXML(['type' => 'admin']);
                $administrationModule              = ServiceModel::getModulesServicesByXML(['type' => 'admin']);
    
                $administration['administrations'] = array_merge_recursive($administrationApplication, $administrationModule);
    
    Damien's avatar
    Damien committed
            } else {
    
    Damien's avatar
    Damien committed
                $administration = ServiceModel::getAdministrationServicesByUserId(['userId' => $GLOBALS['userId']]);
    
    Damien's avatar
    Damien committed
            }
    
            return $response->withJson($administration);
        }