From bc9cb59ce6d7c3a6596e5dd47fe6abed02342a96 Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Tue, 23 Jul 2019 10:09:23 +0100 Subject: [PATCH] FEAT #11266 TIME 0:30 rest route for shortcuts --- rest/index.php | 1 + src/core/controllers/CoreController.php | 46 ++++++++++++++++--------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/rest/index.php b/rest/index.php index 794e0c6dd4c..063ce6763bc 100755 --- a/rest/index.php +++ b/rest/index.php @@ -190,6 +190,7 @@ $app->get('/histories/users/{userSerialId}', \History\controllers\HistoryControl //Header $app->get('/header', \SrcCore\controllers\CoreController::class . ':getHeader'); +$app->get('/shortcuts', \SrcCore\controllers\CoreController::class . ':getShortcuts'); //Home $app->get('/home', \Home\controllers\HomeController::class . ':get'); diff --git a/src/core/controllers/CoreController.php b/src/core/controllers/CoreController.php index 2cd812e0d0a..3cb9b69c218 100755 --- a/src/core/controllers/CoreController.php +++ b/src/core/controllers/CoreController.php @@ -83,17 +83,13 @@ class CoreController $user = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id', 'user_id', 'firstname', 'lastname']]); $user['groups'] = UserModel::getGroupsByUserId(['userId' => $GLOBALS['userId']]); $user['entities'] = UserModel::getEntitiesById(['userId' => $GLOBALS['userId']]); - $user['indexingGroups'] = []; - - $shortcuts = [ - ['id' => 'home'] - ]; if ($GLOBALS['userId'] == 'superadmin') { $menu = ServiceModel::getApplicationServicesByXML(['type' => 'menu']); foreach ($menu as $key => $value) { - if ($value['id'] == 'index_mlb' && $GLOBALS['userId'] == 'superadmin') { + if ($value['id'] == 'index_mlb') { unset($menu[$key]); + break; } } $menuModules = ServiceModel::getModulesServicesByXML(['type' => 'menu']); @@ -102,6 +98,28 @@ class CoreController $menu = ServiceController::getMenuServicesByUserId(['userId' => $GLOBALS['userId']]); } + return $response->withJson([ + 'user' => $user, + 'menu' => $menu + ]); + } + + public function getShortcuts(Request $request, Response $response) + { + $userGroups = UserModel::getGroupsByUserId(['userId' => $GLOBALS['userId']]); + + $shortcuts = [ + ['id' => 'home'] + ]; + + 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) { if ($value['id'] == 'admin') { $shortcuts[] = ['id' => 'administration']; @@ -109,22 +127,16 @@ class CoreController $shortcuts[] = ['id' => 'search']; } } - $indexingGroups = []; - foreach ($user['groups'] as $group) { + foreach ($userGroups as $group) { if ($group['can_index']) { - $indexingGroups[] = ['id' => $group['id'], 'label' => $group['group_desc']]; + $shortcuts[] = [ + 'id' => 'indexing', + 'groups' => ['id' => $group['id'], 'label' => $group['group_desc']] + ]; } } - if (!empty($indexingGroups)) { - $shortcuts[] = [ - 'id' => 'indexing', - 'groups' => $indexingGroups - ]; - } return $response->withJson([ - 'user' => $user, - 'menu' => $menu, 'shortcuts' => $shortcuts ]); } -- GitLab