From 35e424ddfaaa8a155c16f9b8677197aa7bb7adfe Mon Sep 17 00:00:00 2001 From: liugang Date: Wed, 11 Jul 2018 14:18:15 +0800 Subject: [PATCH] * Set privileges for sub menu. --- module/custom/model.php | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/module/custom/model.php b/module/custom/model.php index cb28b96ca8..6d66fefbfa 100644 --- a/module/custom/model.php +++ b/module/custom/model.php @@ -140,11 +140,11 @@ class customModel extends model public static function setMenuByConfig($allMenu, $customMenu, $module = '') { global $app, $lang, $config; - $menu = array(); - $menuModuleName = $module; - $order = 1; - $customMenuMap = array(); - $isTutorialMode = commonModel::isTutorialMode(); + $menu = array(); + $menuModuleName = $module; + $order = 1; + $customMenuMap = array(); + $isTutorialMode = commonModel::isTutorialMode(); if($customMenu) { @@ -250,21 +250,31 @@ class customModel extends model $hidden = isset($customMenuMap[$name]) && isset($customMenuMap[$name]->hidden) && $customMenuMap[$name]->hidden; - if(isset($item['subMenu']) && isset($customMenuMap[$name]->subMenu)) + if(isset($item['subMenu'])) { - foreach($customMenuMap[$name]->subMenu as $subItem) + if(isset($customMenuMap[$name]->subMenu)) { - if(isset($subItem->hidden) && $subItem->hidden && isset($item['subMenu'][$subItem->name])) $item['subMenu'][$subItem->name]->hidden = true; + foreach($customMenuMap[$name]->subMenu as $subItem) + { + if(isset($subItem->hidden) && $subItem->hidden && isset($item['subMenu'][$subItem->name])) $item['subMenu'][$subItem->name]->hidden = true; + } + } + foreach($item['subMenu'] as $subItem) + { + if(isset($subItem->link['module']) && isset($subItem->link['method'])) + { + $subItem->hidden = !common::hasPriv($subItem->link['module'], $subItem->link['method']); + } } } if(strpos($name, 'QUERY') === 0 and !isset($customMenuMap[$name])) $hidden = true; $menuItem = new stdclass(); - $menuItem->name = $name; - $menuItem->link = $itemLink; - $menuItem->text = $label; - $menuItem->order = (isset($customMenuMap[$name]) && isset($customMenuMap[$name]->order) ? $customMenuMap[$name]->order : $order++); + $menuItem->name = $name; + $menuItem->link = $itemLink; + $menuItem->text = $label; + $menuItem->order = (isset($customMenuMap[$name]) && isset($customMenuMap[$name]->order) ? $customMenuMap[$name]->order : $order++); if($hidden) $menuItem->hidden = $hidden; if($class) $menuItem->class = $class; if($subModule)$menuItem->subModule = $subModule;