* Code for task #86260.
This commit is contained in:
@@ -382,7 +382,7 @@ class group extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* edit manage priv.
|
||||
* Edit manage priv.
|
||||
*
|
||||
* @param string $browseType
|
||||
* @param string $view
|
||||
@@ -407,11 +407,37 @@ class group extends control
|
||||
$actionURL = $this->createLink('group', 'editManagePriv', "browseType=bysearch&view=¶mID=myQueryID&recTotal=$recTotal&recPerPage=$recPerPage");
|
||||
$this->group->buildPrivSearchForm($queryID, $actionURL);
|
||||
|
||||
$moduleLang = $this->group->getMenuModules('', true);
|
||||
|
||||
if($browseType == 'bycard')
|
||||
{
|
||||
$moduleList = $this->loadModel('setting')->getItem("owner=system&module=priv§ion=&key={$view}Modules");
|
||||
$privGroup = $this->group->getPrivGroup($moduleList);
|
||||
$privPackages = $this->group->getPrivPackagePairs();
|
||||
$privLang = $this->group->getPrivLangPairs();
|
||||
|
||||
$privList = array();
|
||||
foreach($privGroup as $module => $privs)
|
||||
{
|
||||
if(!isset($privList[$module])) $privList[$module] = array();
|
||||
foreach($privs as $priv)
|
||||
{
|
||||
if(!isset($privList[$module][$priv->package])) $privList[$module][$priv->package] = array();
|
||||
$privList[$module][$priv->package][$priv->id] = $priv;
|
||||
}
|
||||
}
|
||||
|
||||
$this->view->privLang = $privLang;
|
||||
$this->view->privPackages = $privPackages;
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->group->editManagePriv;
|
||||
$this->view->browseType = $browseType;
|
||||
$this->view->privList = $privList;
|
||||
$this->view->packages = $this->group->getPrivPackagesByView($view);
|
||||
$this->view->moduleLang = $moduleLang;
|
||||
$this->view->pager = $pager;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -583,6 +609,7 @@ class group extends control
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* edit priv
|
||||
@@ -621,4 +648,46 @@ class group extends control
|
||||
$this->display();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add dependent privs.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function addDependent()
|
||||
{
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* AJAX: Get priv's related priv list.
|
||||
*
|
||||
* @param int $privID
|
||||
* @param string $type
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function ajaxGetPrivRelations($privID, $type = 'depend')
|
||||
{
|
||||
$moduleLang = $this->group->getMenuModules('', true);
|
||||
$relatedPrivs = $this->group->getPrivRelation($privID);
|
||||
|
||||
if(empty($relatedPrivs)) return print('');
|
||||
|
||||
$privList = array();
|
||||
foreach($relatedPrivs as $relatedPrivID => $relatedPriv)
|
||||
{
|
||||
if(!isset($privList[$relatedPriv->type])) $privList[$relatedPriv->type] = array();
|
||||
if(!isset($privList[$relatedPriv->type][$relatedPriv->module])) $privList[$relatedPriv->type][$relatedPriv->module] = array();
|
||||
$privList[$relatedPriv->type][$relatedPriv->module]['title'] = zget($moduleLang, $relatedPriv->module, $relatedPriv->module);
|
||||
$privList[$relatedPriv->type][$relatedPriv->module]['module'] = $relatedPriv->module;
|
||||
$privList[$relatedPriv->type][$relatedPriv->module]['children'][] = array('title' => $relatedPriv->name);
|
||||
}
|
||||
|
||||
$privList['depend'] = array_values($privList['depend']);
|
||||
$privList['recommend'] = array_values($privList['recommend']);
|
||||
|
||||
return print(json_encode($privList));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,13 +70,22 @@ $(function()
|
||||
$.cookie('managePrivEditType', $(this).data('type'), {expires: config.cookieLife, path: config.webRoot});
|
||||
location.href = location.href;
|
||||
});
|
||||
|
||||
$('.permission-row .checkbox-primary').on('click', 'input', function(e)
|
||||
{
|
||||
console.log($(e.target).attr('type'));
|
||||
}).on('click', 'label', function(e)
|
||||
{
|
||||
if($(e.target).prop('tagName') == 'LABEL');
|
||||
console.log('label');
|
||||
if($(e.target).prop('tagName') == 'LABEL')
|
||||
{
|
||||
var selectedID = $(this).siblings('input:checkbox').data('id');
|
||||
$.get(createLink('group', 'ajaxGetPrivRelations', "privID=" + selectedID), function(data)
|
||||
{
|
||||
var relatedPriv = JSON.parse(data);
|
||||
var dependData = relatedPriv.depend;
|
||||
var recommendData = relatedPriv.recommend;
|
||||
})
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
+17
-16
@@ -65,22 +65,23 @@ $lang->group->addRecommendation = 'Add Recommendation';
|
||||
$lang->group->selectedPrivs = 'Selected Privilege: %s';
|
||||
$lang->group->selectModule = 'Select Module';
|
||||
|
||||
$lang->group->id = 'ID';
|
||||
$lang->group->name = 'Name';
|
||||
$lang->group->desc = 'Beschreibung';
|
||||
$lang->group->role = 'Rolle';
|
||||
$lang->group->acl = 'Rechte';
|
||||
$lang->group->users = 'Benutzer';
|
||||
$lang->group->module = 'Module';
|
||||
$lang->group->method = 'Methoden';
|
||||
$lang->group->priv = 'Gruppe';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = 'Gruppenbenutzer';
|
||||
$lang->group->outside = 'Andere Benutzer';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Andere';
|
||||
$lang->group->all = 'Alle';
|
||||
$lang->group->config = 'Config';
|
||||
$lang->group->id = 'ID';
|
||||
$lang->group->name = 'Name';
|
||||
$lang->group->desc = 'Beschreibung';
|
||||
$lang->group->role = 'Rolle';
|
||||
$lang->group->acl = 'Rechte';
|
||||
$lang->group->users = 'Benutzer';
|
||||
$lang->group->module = 'Module';
|
||||
$lang->group->method = 'Methoden';
|
||||
$lang->group->priv = 'Gruppe';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = 'Gruppenbenutzer';
|
||||
$lang->group->outside = 'Andere Benutzer';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Andere';
|
||||
$lang->group->all = 'Alle';
|
||||
$lang->group->config = 'Config';
|
||||
$lang->group->unassigned = 'Unassigned';
|
||||
|
||||
if(!isset($lang->privPackage)) $lang->privPackage = new stdclass();
|
||||
$lang->privpackage->common = 'Priv Package';
|
||||
|
||||
+17
-16
@@ -65,22 +65,23 @@ $lang->group->addRecommendation = 'Add Recommendation';
|
||||
$lang->group->selectedPrivs = 'Selected Privilege: %s';
|
||||
$lang->group->selectModule = 'Select Module';
|
||||
|
||||
$lang->group->id = 'ID';
|
||||
$lang->group->name = 'Group';
|
||||
$lang->group->desc = 'Description';
|
||||
$lang->group->role = 'Role';
|
||||
$lang->group->acl = 'Right';
|
||||
$lang->group->users = 'Group Members';
|
||||
$lang->group->module = 'Module';
|
||||
$lang->group->method = 'Method';
|
||||
$lang->group->priv = 'Privilege Group';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = 'Group Users';
|
||||
$lang->group->outside = 'Other Users';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Others';
|
||||
$lang->group->all = 'All Privileges';
|
||||
$lang->group->config = 'Config';
|
||||
$lang->group->id = 'ID';
|
||||
$lang->group->name = 'Group';
|
||||
$lang->group->desc = 'Description';
|
||||
$lang->group->role = 'Role';
|
||||
$lang->group->acl = 'Right';
|
||||
$lang->group->users = 'Group Members';
|
||||
$lang->group->module = 'Module';
|
||||
$lang->group->method = 'Method';
|
||||
$lang->group->priv = 'Privilege Group';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = 'Group Users';
|
||||
$lang->group->outside = 'Other Users';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Others';
|
||||
$lang->group->all = 'All Privileges';
|
||||
$lang->group->config = 'Config';
|
||||
$lang->group->unassigned = 'Unassigned';
|
||||
|
||||
if(!isset($lang->privpackage)) $lang->privpackage = new stdclass();
|
||||
$lang->privpackage->common = 'Priv Package';
|
||||
|
||||
+17
-16
@@ -65,22 +65,23 @@ $lang->group->addRecommendation = 'Add Recommendation';
|
||||
$lang->group->selectedPrivs = 'Selected Privilege: %s';
|
||||
$lang->group->selectModule = 'Select Module';
|
||||
|
||||
$lang->group->id = 'ID';
|
||||
$lang->group->name = 'Groupe';
|
||||
$lang->group->desc = 'Description';
|
||||
$lang->group->role = 'Rôle';
|
||||
$lang->group->acl = 'Right';
|
||||
$lang->group->users = 'Membres Groupe';
|
||||
$lang->group->module = 'Module';
|
||||
$lang->group->method = 'Méthode';
|
||||
$lang->group->priv = 'Groupe de Privilèges';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = "Groupe d'utilisateurs";
|
||||
$lang->group->outside = 'Autres utilisateurs';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Autres';
|
||||
$lang->group->all = 'Tous les Privilèges';
|
||||
$lang->group->config = 'Config';
|
||||
$lang->group->id = 'ID';
|
||||
$lang->group->name = 'Groupe';
|
||||
$lang->group->desc = 'Description';
|
||||
$lang->group->role = 'Rôle';
|
||||
$lang->group->acl = 'Right';
|
||||
$lang->group->users = 'Membres Groupe';
|
||||
$lang->group->module = 'Module';
|
||||
$lang->group->method = 'Méthode';
|
||||
$lang->group->priv = 'Groupe de Privilèges';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = "Groupe d'utilisateurs";
|
||||
$lang->group->outside = 'Autres utilisateurs';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Autres';
|
||||
$lang->group->all = 'Tous les Privilèges';
|
||||
$lang->group->config = 'Config';
|
||||
$lang->group->unassigned = 'Unassigned';
|
||||
|
||||
if(!isset($lang->privpackage)) $lang->privpackage = new stdclass();
|
||||
$lang->privpackage->common = 'Priv Package';
|
||||
|
||||
+20
-19
@@ -51,9 +51,9 @@ $lang->group->noGroup = '暂时没有分组。';
|
||||
$lang->group->repeat = "『%s』已经有『%s』这条记录了,请调整后再试。";
|
||||
$lang->group->noneProject = '暂时没有项目';
|
||||
$lang->group->addPriv = '新增权限';
|
||||
$lang->group->editPriv = '编辑权限';
|
||||
$lang->group->privName = '权限名称';
|
||||
$lang->group->privDesc = '描述';
|
||||
$lang->group->editPriv = '编辑权限';
|
||||
$lang->group->privName = '权限名称';
|
||||
$lang->group->privDesc = '描述';
|
||||
$lang->group->add = '添加';
|
||||
$lang->group->batchSetDependency = '批量设置依赖';
|
||||
$lang->group->managePrivPackage = '维护权限包';
|
||||
@@ -65,22 +65,23 @@ $lang->group->addRecommendation = '添加推荐';
|
||||
$lang->group->selectedPrivs = '选中权限:%s';
|
||||
$lang->group->selectModule = '选择模块';
|
||||
|
||||
$lang->group->id = '编号';
|
||||
$lang->group->name = '分组名称';
|
||||
$lang->group->desc = '分组描述';
|
||||
$lang->group->role = '角色';
|
||||
$lang->group->acl = '权限';
|
||||
$lang->group->users = '用户列表';
|
||||
$lang->group->module = '模块';
|
||||
$lang->group->method = '方法';
|
||||
$lang->group->priv = '权限';
|
||||
$lang->group->option = '选项';
|
||||
$lang->group->inside = '组内用户';
|
||||
$lang->group->outside = '组外用户';
|
||||
$lang->group->limited = '受限用户组';
|
||||
$lang->group->other = '其他模块';
|
||||
$lang->group->all = '所有权限';
|
||||
$lang->group->config = '配置';
|
||||
$lang->group->id = '编号';
|
||||
$lang->group->name = '分组名称';
|
||||
$lang->group->desc = '分组描述';
|
||||
$lang->group->role = '角色';
|
||||
$lang->group->acl = '权限';
|
||||
$lang->group->users = '用户列表';
|
||||
$lang->group->module = '模块';
|
||||
$lang->group->method = '方法';
|
||||
$lang->group->priv = '权限';
|
||||
$lang->group->option = '选项';
|
||||
$lang->group->inside = '组内用户';
|
||||
$lang->group->outside = '组外用户';
|
||||
$lang->group->limited = '受限用户组';
|
||||
$lang->group->other = '其他模块';
|
||||
$lang->group->all = '所有权限';
|
||||
$lang->group->config = '配置';
|
||||
$lang->group->unassigned = '未分配';
|
||||
|
||||
if(!isset($lang->privpackage)) $lang->privpackage = new stdclass();
|
||||
$lang->privpackage->common = '权限包';
|
||||
|
||||
+46
-6
@@ -723,11 +723,12 @@ class groupModel extends model
|
||||
/**
|
||||
* Get modules in menu
|
||||
*
|
||||
* @param string $menu
|
||||
* @param string $menu
|
||||
* @param bool $translateLang
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getMenuModules($menu, $translateLang = false)
|
||||
public function getMenuModules($menu = '', $translateLang = false)
|
||||
{
|
||||
$modules = array();
|
||||
foreach($this->lang->resource as $moduleName => $action)
|
||||
@@ -842,6 +843,17 @@ class groupModel extends model
|
||||
return $this->dao->select('*')->from(TABLE_PRIVPACKAGE)->where('module')->eq($module)->orderBy('order_asc')->fetchAll('id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all priv package pairs.
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPrivPackagePairs()
|
||||
{
|
||||
return $this->dao->select('id,name')->from(TABLE_PRIVPACKAGE)->fetchPairs();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get priv packages by view.
|
||||
*
|
||||
@@ -1113,12 +1125,13 @@ class groupModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPrivRelation($priv, $type, $module = '')
|
||||
public function getPrivRelation($priv, $type = '', $module = '')
|
||||
{
|
||||
return $this->dao->select('t2.*')->from(TABLE_PRIVRELATION)->alias('t1')
|
||||
return $this->dao->select('t1.type,t2.*,t3.name')->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')->eq($priv)
|
||||
->andWhere('t1.type')->eq($type)
|
||||
->beginIF(!empty($type))->andWhere('t1.type')->eq($type)->fi()
|
||||
->beginIF($module)->andWhere('t2.module')->eq($module)->fi()
|
||||
->fetchAll('id');
|
||||
}
|
||||
@@ -1246,5 +1259,32 @@ class groupModel extends model
|
||||
|
||||
$this->loadModel('search')->setSearchParams($this->config->group->priv->search);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get priv group by module.
|
||||
*
|
||||
* @param array $moduleList
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPrivGroup($moduleList = array())
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_PRIV)
|
||||
->beginIF(!empty($moduleList))->where('module')->in($moduleList)->fi()
|
||||
->orderBy('order_asc')
|
||||
->fetchGroup('module');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all priv's lang pairs.
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPrivLangPairs()
|
||||
{
|
||||
return $this->dao->select('priv,name')->from(TABLE_PRIVLANG)
|
||||
->where('lang')->eq($this->app->clientLang)
|
||||
->fetchPairs();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<div class="menuTree depend menu-active-primary menu-hover-primary"></div>
|
||||
</div>
|
||||
<div class="panel-bottom">
|
||||
<?php echo html::commonButton ('<i class="icon icon-plus"></i>' . $lang->group->add, '', 'btn btn-primary');?>
|
||||
<?php echo html::a($this->inLink('addDependent'), $lang->group->add, '', "class='btn btn-primary'");?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="priv-panel mt-m">
|
||||
|
||||
@@ -21,48 +21,25 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($privList as $module => $packages):?>
|
||||
<tr class="permission-row">
|
||||
<td class="flex-sm text-center"> 首页 </td>
|
||||
<td class="flex-sm text-center"> 首页 </td>
|
||||
<td class="flex-content">
|
||||
<div class="group-item">
|
||||
<div class="checkbox-primary">
|
||||
<input type="checkbox" name="actions[my][]" value="index" checked="checked" title="地盘仪表盘" id="actions[my]index"></input>
|
||||
<label for="actions[my]index"> 地盘仪表盘 </label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="permission-row">
|
||||
<td class="flex-sm text-center"> 地盘 </td>
|
||||
<td class="flex-sm text-center"> 地盘</td>
|
||||
<td class="flex-sm text-center" rowspan="<?php echo count($packages);?>"><?php echo zget($moduleLang, $module, $module);?></td>
|
||||
<?php foreach($packages as $packageID => $privs):?>
|
||||
<td class="flex-sm text-center"><?php echo zget($privPackages, $packageID, $lang->group->unassigned);?></td>
|
||||
<td class="flex-content sorter-group">
|
||||
<?php foreach($privs as $privID => $priv):?>
|
||||
<div class="group-item">
|
||||
<div class="checkbox-primary">
|
||||
<input type="checkbox" name="actions[my][]" value="index" checked="checked" title="地盘仪表盘" id="actions[my]index"></input>
|
||||
<label for="actions[my]index"> 地盘仪表盘0 </label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group-item">
|
||||
<div class="checkbox-primary">
|
||||
<input type="checkbox" name="actions[my][]" value="index" checked="checked" title="地盘仪表盘" id="actions[my]index"></input>
|
||||
<label for="actions[my]index"> 地盘仪表盘1 </label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group-item">
|
||||
<div class="checkbox-primary">
|
||||
<input type="checkbox" name="actions[my][]" value="index" checked="checked" title="地盘仪表盘" id="actions[my]index"></input>
|
||||
<label for="actions[my]index"> 地盘仪表盘2 </label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group-item">
|
||||
<div class="checkbox-primary">
|
||||
<input type="checkbox" name="actions[my][]" value="index" checked="checked" title="地盘仪表盘" id="actions[my]index"></input>
|
||||
<label for="actions[my]index"> 地盘仪表盘3 </label>
|
||||
<?php $action = $priv->methodName;?>
|
||||
<?php $label = zget($privLang, $privID, $action);?>
|
||||
<?php echo html::checkbox("actions[$module][]", array($action => $label), $action, "title='{$label}' id='actions[$module]$action' data-id='$privID'");?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
</td>
|
||||
<?php endforeach;?>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user