From c7dbc271c6bb01fcbeedc229faad61a1dffbf1e2 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Wed, 26 Apr 2023 14:11:41 +0800 Subject: [PATCH] * Fix bug #34849. --- module/group/control.php | 9 +++++++-- module/group/model.php | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/module/group/control.php b/module/group/control.php index a15dc6ce82..aa03f4112c 100644 --- a/module/group/control.php +++ b/module/group/control.php @@ -251,13 +251,19 @@ class group extends control $privs = $this->group->transformPrivLang($privs); $privs = $this->group->getCustomPrivs($menu, $privs); + $privList = $modules; $privMethods = array(); $selectPrivs = array(); $selectedPrivIdList = array(); + $groupPrivsIdList = $this->group->getPrivsIdListByGroup($groupID); foreach($privs as $priv) { - if(!empty($version) and strpos($changelogs, ",{$priv->module}-{$priv->method},") === false) continue; + if(!empty($version) and strpos($changelogs, ",{$priv->module}-{$priv->method},") === false) + { + unset($groupPrivsIdList[$priv->id]); + continue; + } if(!isset($privList[$priv->parentCode])) $privList[$priv->parentCode] = array(); if(!is_array($privList[$priv->parentCode])) $privList[$priv->parentCode] = array(); @@ -305,7 +311,6 @@ class group extends control } } - $groupPrivsIdList = $this->group->getPrivsIdListByGroup($groupID); $excludePrivsIdList = array_diff(array_keys($groupPrivsIdList), $selectedPrivIdList); $relatedPrivData = $this->group->getRelatedPrivs($selectedPrivIdList, '', $excludePrivsIdList); diff --git a/module/group/model.php b/module/group/model.php index 45fa6d0acc..d71b4cab5f 100644 --- a/module/group/model.php +++ b/module/group/model.php @@ -467,6 +467,7 @@ class groupModel extends model $privs[] = $data; } } + $this->insertPrivs($privs); $depentedPrivs = $this->getPrivByIdList($depentedPrivs); foreach($depentedPrivs as $privID => $priv) { @@ -495,7 +496,6 @@ class groupModel extends model $data->method = $priv->method; $this->dao->replace(TABLE_GROUPPRIV)->data($data)->exec(); } - $this->insertPrivs($privs); } return !empty($depentedPrivs) ? true : false; }