* Finish task #89841.

This commit is contained in:
liumengyi
2023-04-07 16:58:20 +08:00
parent cb4c41b19e
commit bacf6bb174
4 changed files with 62 additions and 107 deletions
+7 -36
View File
@@ -295,11 +295,12 @@ class group extends control
$relatedPrivData = $this->group->getDependentPrivs($selectedPrivIdList);
$this->view->privList = $privList;
$this->view->privMethods = $privMethods;
$this->view->selectPrivs = $selectPrivs;
$this->view->privPackages = $privPackages;
$this->view->relatedPrivData = json_encode($relatedPrivData);
$this->view->privList = $privList;
$this->view->privMethods = $privMethods;
$this->view->selectPrivs = $selectPrivs;
$this->view->privPackages = $privPackages;
$this->view->selectedPrivIdList = $selectedPrivIdList;
$this->view->relatedPrivData = json_encode($relatedPrivData);
}
elseif($type == 'byModule')
{
@@ -1060,37 +1061,7 @@ class group extends control
*/
public function ajaxGetDependentPrivs($privIdList)
{
$relatedPrivs = $this->dao->select('t1.relationPriv,t2.parent,t2.module,t2.method,t3.`key`,t3.value')->from(TABLE_PRIVRELATION)->alias('t1')
->leftJoin(TABLE_PRIV)->alias('t2')->on('t1.relationPriv=t2.id')
->leftJoin(TABLE_PRIVLANG)->alias('t3')->on('t2.relationPriv=t3.objectID')
->leftJoin(TABLE_PRIVMANAGER)->alias('t4')->on('t2.parent=t4.id')
->where('t1.priv')->in($privIdList)
->andWhere('t1.relationPriv')->notin($privIdList)
->andWhere('t2.type')->eq('depend')
->andWhere('t3.objectType')->eq('priv')
->andWhere('t1.edition')->like("%,{$this->config->edition},%")
->andWhere('t1.vision')->like("%,{$this->config->vision},%")
->fetchAll('relationPriv');
if(empty($relatedPrivs)) return print('');
$modulePairs = $this->group->getPrivManagerPairs('module');
$managerList = $this->dao->select('*')->from(TABLE_PRIVMANAGER)->fetchAll('id');
$relatedPrivs = $this->group->transformPrivLang($relatedPrivs);
$privList = array('depend' => array(), 'recommend' => array());
foreach($relatedPrivs as $privID => $relatedPriv)
{
$module = $relatedPriv->module;
if(!isset($privList['depend'][$module])) $privList[$type][$module] = array();
$moduleCode = $managerList[$relatedPriv->parent]->type == 'package' ? $managerList[$managerList[$relatedPriv->parent]->parent]->code : $managerList[$relatedPriv->parent]->code;
$privList['depend'][$module]['title'] = $modulePairs[$moduleCode];
$privList['depend'][$module]['module'] = $moduleCode;
$privList['depend'][$module]['children'][] = array('title' => $relatedPriv->name, 'relationPriv' => $privID);
}
$privList['depend'] = array_values($privList[$type]);
$privList = $this->group->getDependentPrivs($privIdList);
return print(json_encode($privList));
}
}