From 4d21e6e6443f6cc4155d20eaf1d58684fe55859f Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 10 Mar 2023 03:14:44 +0000 Subject: [PATCH] * Fix bug of editmanageprivbylist. --- module/group/control.php | 8 +++--- module/group/model.php | 25 +++++++++++++++++++ .../group/view/editmanageprivbylist.html.php | 4 +-- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/module/group/control.php b/module/group/control.php index ade655055b..64a41f23bb 100644 --- a/module/group/control.php +++ b/module/group/control.php @@ -432,11 +432,9 @@ class group extends control $actionURL = $this->createLink('group', 'editManagePriv', "browseType=bysearch&view=¶mID=myQueryID&recTotal=$recTotal&recPerPage=$recPerPage"); $this->group->buildPrivSearchForm($queryID, $actionURL); - $privRelations = array(); - $privRelations['recommend'] = $this->group->getPrivRelationPairs(array_keys($privList), 'recommend'); - $privRelations['recommend'] = implode(',', $privRelations['recommend']); - $privRelations['dependent'] = $this->group->getPrivRelationPairs(array_keys($privList), 'dependent'); - $privRelations['dependent'] = implode(',', $privRelations['dependent']); + $privRelations = $this->group->getPrivRelationsByIdList(array_keys($privList)); + if(!isset($privRelations['recommend'])) $privRelations['recommend'] = array(); + if(!isset($privRelations['dependent'])) $privRelations['dependent'] = array(); $this->view->pager = $pager; $this->view->privRelations = $privRelations; diff --git a/module/group/model.php b/module/group/model.php index 3d09749421..b338c3380a 100644 --- a/module/group/model.php +++ b/module/group/model.php @@ -1243,6 +1243,31 @@ class groupModel extends model ->fetchPairs(); } + /** + * Get priv relation. + * + * @param array $privs + * @access public + * @return array + */ + public function getPrivRelationsByIdList($privs, $type = '') + { + $privs = $this->dao->select('t1.priv,t3.name,t1.type,t1.relationPriv')->from(TABLE_PRIVRELATION)->alias('t1') + ->leftJoin(TABLE_PRIV)->alias('t2')->on('t1.relationPriv=t2.id') + ->leftJoin(TABLE_PRIVLANG)->alias('t3')->on('t2.id=t3.priv') + ->where('t1.priv')->in($privs) + ->beginIF(!empty($type))->andWhere('t1.type')->eq($type)->fi() + ->fetchGroup('type'); + $relationPrivs = array(); + foreach($privs as $type => $typePrivs) + { + $relationPrivs[$type] = array(); + foreach($typePrivs as $priv) $relationPrivs[$type][$priv->priv] = empty($relationPrivs[$type][$priv->priv]) ? $priv->name : "{$relationPrivs[$type][$priv->priv]},{$priv->name}"; + } + + return $relationPrivs; + } + /** * Save relation. * diff --git a/module/group/view/editmanageprivbylist.html.php b/module/group/view/editmanageprivbylist.html.php index 326920a586..02bb2d04e1 100644 --- a/module/group/view/editmanageprivbylist.html.php +++ b/module/group/view/editmanageprivbylist.html.php @@ -44,8 +44,8 @@ $lang->privp->p2 = '推荐权限'; {$view}->common) ? $lang->{$view}->common : $view;?> module]) ? $moduleLang[$priv->module] : $priv->module;?> '>package, '');?> - id);?>'>id);?> - id);?>'>id);?> + id, '');?>'>id, '');?> + id, '');?>'>id, '');?> desc;?> id", '', 'list', 'edit', '', 'iframe', true);?>