From f1362b9010f25abc028e72b0e60d9fa09ca337b7 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 4 Apr 2023 10:13:44 +0800 Subject: [PATCH] * Fix bug of getPrivManagerPairs. --- module/group/model.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/module/group/model.php b/module/group/model.php index 5bea0d50c5..1428a342fa 100644 --- a/module/group/model.php +++ b/module/group/model.php @@ -1401,12 +1401,7 @@ class groupModel extends model */ public function getPrivsListByView($view = '', $pager = null) { - $this->loadModel('setting'); - $views = empty($view) ? $this->setting->getItem("owner=system&module=priv&key=views") : $view; - $views = explode(',', $views); - $modules = ''; - foreach($views as $view) $modules .= ',' . $this->setting->getItem("owner=system&module=priv&key={$view}Modules"); - $modules = trim($modules, ','); + $modules = $this->getPrivManagerPairs('module', $view); $privs = $this->dao->select("t1.*,t2.name,t2.desc, INSTR('$modules', t1.`module`) as moduleOrder")->from(TABLE_PRIV)->alias('t1') ->leftJoin(TABLE_PRIVLANG)->alias('t2')->on('t1.id=t2.priv') @@ -1886,8 +1881,11 @@ class groupModel extends model * @access public * @return array */ - public function getPrivManagerPairs($type = '', $parent = 0) + public function getPrivManagerPairs($type, $parent = 0) { + $parentType = $type == 'module' ? 'view' : 'module'; + $parent = $this->dao->select('id as parent')->from(TABLE_PRIVMANAGER)->where('type')->eq($parentType)->andWhere('code')->eq($parent)->fetch('parent'); + $managers = $this->dao->select('t1.id,t2.key,t2.value') ->from(TABLE_PRIVMANAGER)->alias('t1') ->leftJoin(TABLE_PRIVLANG)->alias('t2')->on('t1.id=t2.objectID')