Merge branch 'zentaopms_295' of https://gitlab.zcorp.cc/easycorp/zentaopms into zentaopms_295
This commit is contained in:
@@ -73,6 +73,7 @@ $filter->tree = new stdclass();
|
||||
$filter->productplan = new stdclass();
|
||||
$filter->projectplan = new stdclass();
|
||||
$filter->kanban = new stdclass();
|
||||
$filter->group = new stdclass();
|
||||
|
||||
$filter->index->index = new stdclass();
|
||||
$filter->block->default = new stdclass();
|
||||
@@ -180,6 +181,7 @@ $filter->projectplan->browse = new stdclass();
|
||||
$filter->kanban->space = new stdclass();
|
||||
$filter->execution->kanban = new stdclass();
|
||||
$filter->execution->all = new stdclass();
|
||||
$filter->group->editmanagepriv = new stdclass();
|
||||
|
||||
$filter->index->index->get['open'] = 'reg::base64';
|
||||
|
||||
@@ -451,3 +453,5 @@ $filter->tree->browse->cookie['preProductID'] = 'int';
|
||||
$filter->tree->browse->cookie['preBranch'] = 'reg::word';
|
||||
|
||||
$filter->kanban->space->cookie['showClosed'] = 'code';
|
||||
|
||||
$filter->group->editmanagepriv->cookie['managePrivEditType'] = 'string';
|
||||
|
||||
+34
-10
@@ -382,14 +382,15 @@ class group extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* edit permission.
|
||||
* edit manage priv.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function permissionedit()
|
||||
public function editManagePriv()
|
||||
{
|
||||
$this->view->title = $this->lang->group->permissionedit;
|
||||
$this->view->title = $this->lang->group->editManagePriv;
|
||||
$this->view->editType = $this->cookie->managePrivEditType ? $this->cookie->managePrivEditType : 'bycard';
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -401,7 +402,8 @@ class group extends control
|
||||
*/
|
||||
public function managePrivPackage()
|
||||
{
|
||||
$this->view->title = $this->lang->group->managePrivPackage;
|
||||
$this->view->title = $this->lang->group->managePrivPackage;
|
||||
$this->view->packagesTreeList = $this->group->getPrivPackageTreeList();
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -421,7 +423,7 @@ class group extends control
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->group->createPrivPackage;
|
||||
$this->view->modules = array(0,1);
|
||||
$this->view->modules = $this->group->getPrivModules();
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -447,12 +449,34 @@ class group extends control
|
||||
|
||||
$this->view->title = $this->lang->group->editPrivPackage;
|
||||
$this->view->privPackage = $this->group->getPrivPackageByID($privPackageID);
|
||||
$this->view->modules = array(0,1);
|
||||
$this->view->modules = $this->group->getPrivModules();
|
||||
$this->view->actions = $this->loadModel('action')->getList('privpackage', $privPackageID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs();
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a priv package.
|
||||
*
|
||||
* @param int $privPackageID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function deletePrivPackage($privPackageID, $confirm = 'no')
|
||||
{
|
||||
if($confirm == 'no')
|
||||
{
|
||||
return print(js::confirm($this->lang->group->confirmDeleteAB, $this->createLink('group', 'deletePrivPackage', "privPackageID=$privPackageID&confirm=yes")));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->group->deletePrivPackage($privPackageID);
|
||||
if(!dao::isError()) $this->loadModel('action')->create('privpackage', $privPackageID, 'deleted');
|
||||
|
||||
return print(js::reload('parent'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add recommendation.
|
||||
*
|
||||
@@ -496,10 +520,10 @@ class group extends control
|
||||
$tree .= "<ul class='relationBox'>";
|
||||
foreach($modulePrivs[$module] as $id => $modulePriv)
|
||||
{
|
||||
if($privID == $id) continue;
|
||||
$tree .= '<li>';
|
||||
$tree .= html::checkbox('relation', array($id => $modulePriv->name), (empty($recommends) or isset($recommends[$id])) ? $id : '');
|
||||
$tree .= '</li>';
|
||||
if($privID == $id) continue;
|
||||
$tree .= '<li>';
|
||||
$tree .= html::checkbox('relation', array($id => $modulePriv->name), (empty($recommends) or isset($recommends[$id])) ? $id : '');
|
||||
$tree .= '</li>';
|
||||
}
|
||||
$tree .= '</ul></li>';
|
||||
return print($tree);
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
.mt-m {margin-top: 16px;}
|
||||
|
||||
.flex-space-center {display: flex; justify-content: space-between; align-items: center;}
|
||||
#mainContent {display: flex; gap: 16px;}
|
||||
#mainContent {display: flex; gap: 16px; height: calc(100vh - 120px)}
|
||||
#mainContent > .main {flex: 1 1 75%;}
|
||||
#mainContent > .side {flex: 1 1 25%;}
|
||||
|
||||
.priv-panel {background: #fff; padding: 10px; box-shadow: 0 1px 1px rgb(0 0 0 / 5%), 0 2px 6px 0 rgb(0 0 0 / 5%);}
|
||||
.priv-panel > .panel-content {height: calc(50vh - 165px); overflow-y: auto; min-height: 140px;}
|
||||
.priv-panel > .panel-content {height: calc(50vh - 160px); overflow-y: auto; min-height: 140px;}
|
||||
.priv-panel > .panel-bottom {padding-top: 20px;}
|
||||
|
||||
/* permission-table */
|
||||
/* .permission-head {padding-right: 20px;}*/
|
||||
#permissionEditForm tr {display: flex;}
|
||||
#permissionEditForm {overflow-y: auto; height: calc(100vh - 180px)}
|
||||
.flex-sm {flex: 1 1 15%;}
|
||||
.flex-content {flex: 1 1 70%;}
|
||||
.sorter-group {display: flex; flex-wrap: wrap;}
|
||||
.sorter-group > .group-item {flex: 1 1 25%;}
|
||||
|
||||
/* tree */
|
||||
.tree ul > li {display: inline-block; width: 50%;}
|
||||
.priv-item > .icon {padding-left: 5px;}
|
||||
@@ -0,0 +1,4 @@
|
||||
.has-prefix {position: relative; display: flex; align-items: center;}
|
||||
.c-name {min-width: 200px;}
|
||||
.c-desc {min-width: 200px;}
|
||||
.c-order {width: 50px;}
|
||||
@@ -63,4 +63,12 @@ $(function()
|
||||
initRecomendTree(data);
|
||||
initDependTree(data);
|
||||
$('li.has-list > ul').addClass("menu-active-primary menu-hover-primary");
|
||||
$('.sorter-group').sortable();
|
||||
|
||||
$('.btn-switch').on('click', function()
|
||||
{
|
||||
$.cookie('managePrivEditType', $(this).data('type'), {expires: config.cookieLife, path: config.webRoot});
|
||||
location.href = location.href;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -23,8 +23,9 @@ $lang->group->byModuleTips = '<span class="tips">(SHIFT/STRG für Multi-Se
|
||||
$lang->group->allTips = 'After checking this option, the administrator can manage all objects in the system, including objects created later.';
|
||||
$lang->group->manageMember = 'Mitglieder';
|
||||
$lang->group->manageProjectAdmin = 'Manage Program Admins';
|
||||
$lang->group->permissionedit = 'Permission Edit';
|
||||
$lang->group->editManagePriv = 'Permission Edit';
|
||||
$lang->group->confirmDelete = "Do you want to delete '%s'?";
|
||||
$lang->group->confirmDeleteAB = 'Do you want to delete this?';
|
||||
$lang->group->successSaved = 'Gespeichert!';
|
||||
$lang->group->errorNotSaved = 'Fehlgeschlagen. Bitte aktion und Gruppe wählen.';
|
||||
$lang->group->viewList = 'Anzeige ist zulässig.';
|
||||
@@ -78,6 +79,7 @@ $lang->group->all = 'Alle';
|
||||
$lang->group->config = 'Config';
|
||||
|
||||
if(!isset($lang->privPackage)) $lang->privPackage = new stdclass();
|
||||
$lang->privpackage->common = 'Priv Package';
|
||||
$lang->privPackage->id = 'ID';
|
||||
$lang->privPackage->name = 'Priv Package Name';
|
||||
$lang->privPackage->module = 'Module';
|
||||
|
||||
@@ -23,8 +23,9 @@ $lang->group->byModuleTips = '<span class="tips">(Press Shift/Ctrl to Mult
|
||||
$lang->group->allTips = 'After checking this option, the administrator can manage all objects in the system, including objects created later.';
|
||||
$lang->group->manageMember = 'Manage Members';
|
||||
$lang->group->manageProjectAdmin = 'Manage Program Admins';
|
||||
$lang->group->permissionedit = 'Permission Edit';
|
||||
$lang->group->editManagePriv = 'Permission Edit';
|
||||
$lang->group->confirmDelete = "Do you want to delete '%s'?";
|
||||
$lang->group->confirmDeleteAB = 'Do you want to delete this?';
|
||||
$lang->group->successSaved = 'Saved.';
|
||||
$lang->group->errorNotSaved = 'Failed. Please select actions and groups.';
|
||||
$lang->group->viewList = 'Access Sight';
|
||||
@@ -78,6 +79,7 @@ $lang->group->all = 'All Privileges';
|
||||
$lang->group->config = 'Config';
|
||||
|
||||
if(!isset($lang->privPackage)) $lang->privPackage = new stdclass();
|
||||
$lang->privpackage->common = 'Priv Package';
|
||||
$lang->privPackage->id = 'ID';
|
||||
$lang->privPackage->name = 'Priv Package Name';
|
||||
$lang->privPackage->module = 'Module';
|
||||
|
||||
@@ -23,8 +23,9 @@ $lang->group->byModuleTips = '<span class="tips">(Shift/Ctrl pour sélecti
|
||||
$lang->group->allTips = 'After checking this option, the administrator can manage all objects in the system, including objects created later.';
|
||||
$lang->group->manageMember = 'Gérer Membres';
|
||||
$lang->group->manageProjectAdmin = 'Manage Program Admins';
|
||||
$lang->group->permissionedit = 'Permission Edit';
|
||||
$lang->group->editManagePriv = 'Permission Edit';
|
||||
$lang->group->confirmDelete = "Voulez - vous supprimer '%s'?";
|
||||
$lang->group->confirmDeleteAB = 'Do you want to delete this?';
|
||||
$lang->group->successSaved = 'Sauvé.';
|
||||
$lang->group->errorNotSaved = 'Echec. Veuillez sélectionner actions et groupes.';
|
||||
$lang->group->viewList = 'Accès Consultation';
|
||||
@@ -78,6 +79,7 @@ $lang->group->all = 'Tous les Privilèges';
|
||||
$lang->group->config = 'Config';
|
||||
|
||||
if(!isset($lang->privPackage)) $lang->privPackage = new stdclass();
|
||||
$lang->privpackage->common = 'Priv Package';
|
||||
$lang->privPackage->id = 'ID';
|
||||
$lang->privPackage->name = 'Priv Package Name';
|
||||
$lang->privPackage->module = 'Module';
|
||||
|
||||
@@ -1693,7 +1693,7 @@ $lang->resource->group->manageView = 'manageView';
|
||||
$lang->resource->group->managePriv = 'managePriv';
|
||||
$lang->resource->group->manageMember = 'manageMember';
|
||||
$lang->resource->group->manageProjectAdmin = 'manageProjectAdmin';
|
||||
$lang->resource->group->permissionedit = 'permissionedit';
|
||||
$lang->resource->group->editManagePriv = 'editManagePriv';
|
||||
$lang->resource->group->managePrivPackage = 'managePrivPackage';
|
||||
$lang->resource->group->createPrivPackage = 'createPrivPackage';
|
||||
$lang->resource->group->editPrivPackage = 'editPrivPackage';
|
||||
@@ -1707,7 +1707,7 @@ $lang->group->methodOrder[25] = 'delete';
|
||||
$lang->group->methodOrder[30] = 'managePriv';
|
||||
$lang->group->methodOrder[35] = 'manageMember';
|
||||
$lang->group->methodOrder[40] = 'manageProjectAdmin';
|
||||
$lang->group->methodOrder[45] = 'permissionedit';
|
||||
$lang->group->methodOrder[45] = 'editManagePriv';
|
||||
|
||||
/* User. */
|
||||
$lang->resource->user = new stdclass();
|
||||
|
||||
@@ -22,7 +22,7 @@ $lang->group->managePrivByModule = 'Quản lý Privileges by Module';
|
||||
$lang->group->byModuleTips = '<span class="tips">(Press Shift/Ctrl to Multi-select)</span>';
|
||||
$lang->group->manageMember = 'Quản lý Members';
|
||||
$lang->group->manageProjectAdmin = 'Manage Program Admins';
|
||||
$lang->group->permissionedit = 'Permission Edit';
|
||||
$lang->group->editManagePriv = 'Permission Edit';
|
||||
$lang->group->confirmDelete = 'Bạn có muốn xóa người dùng này group?';
|
||||
$lang->group->successSaved = 'Đã lưu.';
|
||||
$lang->group->errorNotSaved = 'Thất bại. Vui lòng select actions and groups.';
|
||||
|
||||
@@ -23,8 +23,9 @@ $lang->group->byModuleTips = '<span class="tips">(可以按住Shift或
|
||||
$lang->group->allTips = '勾选此项后,管理员可管理系统中所有对象,包括后续创建的对象。';
|
||||
$lang->group->manageMember = '成员维护';
|
||||
$lang->group->manageProjectAdmin = '维护项目管理员';
|
||||
$lang->group->permissionedit = '维护权限';
|
||||
$lang->group->editManagePriv = '维护权限';
|
||||
$lang->group->confirmDelete = '您确定删除“%s”用户分组吗?';
|
||||
$lang->group->confirmDeleteAB = '您确定删除吗?';
|
||||
$lang->group->successSaved = '成功保存';
|
||||
$lang->group->errorNotSaved = '没有保存,请确认选择了权限数据。';
|
||||
$lang->group->viewList = '可访问视图';
|
||||
@@ -78,6 +79,7 @@ $lang->group->all = '所有权限';
|
||||
$lang->group->config = '配置';
|
||||
|
||||
if(!isset($lang->privpackage)) $lang->privpackage = new stdclass();
|
||||
$lang->privpackage->common = '权限包';
|
||||
$lang->privpackage->id = '编号';
|
||||
$lang->privpackage->name = '权限包名称';
|
||||
$lang->privpackage->module = '所属模块';
|
||||
|
||||
+141
-11
@@ -774,6 +774,11 @@ class groupModel extends model
|
||||
public function createPrivPackage()
|
||||
{
|
||||
$package = fixer::input('post')->get();
|
||||
if(isset($package->module))
|
||||
{
|
||||
$packages = $this->getPrivPackagesByModule($package->module);
|
||||
$package->order = (count($packages) + 1) * 5;
|
||||
}
|
||||
$this->dao->insert(TABLE_PRIVPACKAGE)->data($package)->batchCheck($this->config->privPackage->create->requiredFields, 'notempty')->exec();
|
||||
$packageID = $this->dao->lastInsertId();
|
||||
$this->loadModel('action')->create('privpackage', $packageID, 'Opened');
|
||||
@@ -792,6 +797,11 @@ class groupModel extends model
|
||||
$oldPackage = $this->getPrivPackageByID($packageID);
|
||||
|
||||
$package = fixer::input('post')->get();
|
||||
if($oldPackage->module != $package->module)
|
||||
{
|
||||
$packages = $this->getPrivPackagesByModule($package->module);
|
||||
$package->order = (count($packages) + 1) * 5;
|
||||
}
|
||||
$this->dao->update(TABLE_PRIVPACKAGE)->data($package)->batchCheck($this->config->privPackage->update->requiredFields, 'notempty')->where('id')->eq($packageID)->exec();
|
||||
if(dao::isError()) return false;
|
||||
|
||||
@@ -801,8 +811,15 @@ class groupModel extends model
|
||||
return $changes;
|
||||
}
|
||||
|
||||
public function deletePrivPackage($packageID)
|
||||
{
|
||||
$this->dao->delete()->from(TABLE_PRIVPACKAGE)->where('id')->eq($packageID)->exec();
|
||||
if(dao::isError()) return false;
|
||||
$this->dao->update(TABLE_PRIV)->set('package')->eq(0)->where('package')->eq($packageID)->exec();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ge priv package by ID.
|
||||
* Get priv package by ID.
|
||||
*
|
||||
* @param int $packageID
|
||||
* @access public
|
||||
@@ -813,6 +830,115 @@ class groupModel extends model
|
||||
return $this->dao->findById($packageID)->from(TABLE_PRIVPACKAGE)->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get priv packages by module.
|
||||
*
|
||||
* @param string $module
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getPrivPackagesByModule($module)
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_PRIVPACKAGE)->where('module')->eq($module)->fetchAll('id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get priv modules.
|
||||
*
|
||||
* @param string $viewName
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPrivModules($viewName = '')
|
||||
{
|
||||
$this->loadModel('setting');
|
||||
|
||||
$tree = array();
|
||||
$views = empty($viewName) ? $this->setting->getItem("owner=system&module=priv&key=views") : $viewName;
|
||||
$views = explode(',', $views);
|
||||
$modules = array();
|
||||
foreach($views as $view)
|
||||
{
|
||||
$viewModules = $this->setting->getItem("owner=system&module=priv&key={$view}Modules");
|
||||
if(empty($viewModules)) continue;
|
||||
|
||||
$viewModules = explode(',', $viewModules);
|
||||
foreach($viewModules as $index => $module)
|
||||
{
|
||||
$this->app->loadLang($module);
|
||||
$modules[$module] = $this->lang->{$view}->common . '/' . $this->lang->{$module}->common;
|
||||
unset($viewModules[$index]);
|
||||
}
|
||||
}
|
||||
|
||||
return $modules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get priv package tree list.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getPrivPackageTreeList()
|
||||
{
|
||||
$this->loadModel('setting');
|
||||
|
||||
$views = empty($viewName) ? $this->setting->getItem("owner=system&module=priv&key=views") : $viewName;
|
||||
$views = explode(',', $views);
|
||||
|
||||
$modules = array();
|
||||
foreach($views as $viewIndex => $view)
|
||||
{
|
||||
$this->app->loadLang($view);
|
||||
$viewID = $view . 'View';
|
||||
$treeView = new stdclass();
|
||||
$treeView->id = $viewID;
|
||||
$treeView->name = $this->lang->{$view}->common;
|
||||
$treeView->parent = 0;
|
||||
$treeView->path = ",{$viewID},";
|
||||
$treeView->grade = 1;
|
||||
$treeView->order = $viewIndex;
|
||||
$treeView->desc = '';
|
||||
$tree[$viewID] = $treeView;
|
||||
|
||||
$viewModules = $this->setting->getItem("owner=system&module=priv&key={$view}Modules");
|
||||
if(empty($viewModules)) continue;
|
||||
|
||||
$viewModules = explode(',', $viewModules);
|
||||
foreach($viewModules as $moduleIndex => $module)
|
||||
{
|
||||
$this->app->loadLang($module);
|
||||
|
||||
$treeModule = new stdclass();
|
||||
$treeModule->id = $module;
|
||||
$treeModule->name = $this->lang->{$module}->common;
|
||||
$treeModule->parent = $viewID;
|
||||
$treeModule->path = ",{$viewID},{$module},";
|
||||
$treeModule->grade = 2;
|
||||
$treeModule->order = $moduleIndex;
|
||||
$treeModule->desc = '';
|
||||
$tree[$module] = $treeModule;
|
||||
|
||||
$packages = $this->getPrivPackagesByModule($module);
|
||||
foreach($packages as $packageID => $package)
|
||||
{
|
||||
$treePackage = new stdclass();
|
||||
$treePackage->id = $packageID;
|
||||
$treePackage->name = $package->name;
|
||||
$treePackage->parent = $module;
|
||||
$treePackage->path = ",{$viewID},{$module},{$packageID},";
|
||||
$treePackage->grade = 3;
|
||||
$treePackage->desc = $package->desc;
|
||||
$treePackage->order = $package->order;
|
||||
$tree[$packageID] = $treePackage;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $tree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Init Privs.
|
||||
*
|
||||
@@ -824,18 +950,20 @@ class groupModel extends model
|
||||
$this->sortResource();
|
||||
$resource = json_decode(json_encode($this->lang->resource), true);
|
||||
$this->dao->delete()->from(TABLE_PRIVLANG)->exec();
|
||||
$this->dao->delete()->from(TABLE_PRIV)->exec();
|
||||
$this->dao->delete()->from(TABLE_CONFIG)->where('module')->eq('priv')->exec();
|
||||
|
||||
$views = array();
|
||||
$viewModules = array();
|
||||
$this->loadModel('setting');
|
||||
foreach($resource as $moduleName => $methods)
|
||||
{
|
||||
$groupKey = $moduleName;
|
||||
$view = isset($this->lang->navGroup->{$groupKey}) ? $this->lang->navGroup->{$groupKey} : $moduleName;
|
||||
$viewModules = array();
|
||||
$order = 1;
|
||||
$groupKey = $moduleName;
|
||||
$view = isset($this->lang->navGroup->{$groupKey}) ? $this->lang->navGroup->{$groupKey} : $moduleName;
|
||||
$viewModules[$view][] = $moduleName;
|
||||
|
||||
$order = 1;
|
||||
foreach($methods as $methodName => $methodLang)
|
||||
{
|
||||
$viewModules[] = $methodName;
|
||||
$priv = new stdclass();
|
||||
$priv->moduleName = $moduleName;
|
||||
$priv->methodName = $methodName;
|
||||
@@ -862,13 +990,15 @@ class groupModel extends model
|
||||
}
|
||||
}
|
||||
}
|
||||
$viewModules = implode(',', $viewModules);
|
||||
$views[$view] = empty($views[$view]) ? $viewModules : "{$views[$view]},{$viewModules}";
|
||||
}
|
||||
|
||||
foreach($views as $viewName => $view) $this->setting->setItem("system.priv.{$viewName}Modules", $view);
|
||||
foreach($viewModules as $viewName => $modules)
|
||||
{
|
||||
$modules = implode(',', $viewModules[$viewName]);
|
||||
$this->setting->setItem("system.priv.{$viewName}Modules", $modules);
|
||||
}
|
||||
|
||||
$views = array_keys($views);
|
||||
$views = array_keys($viewModules);
|
||||
$this->setting->setItem("system.priv.views", implode(',', $views));
|
||||
|
||||
if(!dao::isError()) return true;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->group->browse;?></span></span>
|
||||
</div>
|
||||
<div class='btn-toolbar pull-right'>
|
||||
<?php if(common::hasPriv('group', 'permissionedit')) echo html::a($this->createLink('group', 'permissionedit', '', '', false), '<i class="icon icon-backend muted" style="padding-right: 5px"></i>' . $lang->group->permissionedit, '', 'class="btn btn-link"');?>
|
||||
<?php if(common::hasPriv('group', 'editManagePriv')) echo html::a($this->createLink('group', 'editManagePriv', '', '', false), '<i class="icon icon-backend muted" style="padding-right: 5px"></i>' . $lang->group->editManagePriv, '', 'class="btn btn-link"');?>
|
||||
<?php if(common::hasPriv('group', 'managePriv')) echo html::a($this->createLink('group', 'managePriv', 'type=byModule', '', true), $lang->group->managePrivByModule, '', 'class="btn btn-link iframe"');?>
|
||||
<?php if(common::hasPriv('group', 'create')) echo html::a($this->createLink('group', 'create', '', '', true), '<i class="icon-plus"></i> ' . $lang->group->create, '', 'class="btn btn-primary iframe" data-width="550"');?>
|
||||
</div>
|
||||
|
||||
+14
-15
@@ -1,12 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* The permissionedit view file of group module of ZenTaoPMS.
|
||||
* The editManagePriv view file of group module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
|
||||
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
|
||||
* @author Feilong Guo <guofeilong@cnezsoft.com>
|
||||
* @package group
|
||||
* @version permissionedit.html.php 4769 2023-03-07 07:24:21Z guofeilong $
|
||||
* @version $id editManagePriv.html.php 4769 2023-03-07 07:24:21Z guofeilong $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
@@ -18,8 +18,8 @@
|
||||
</div>
|
||||
<div class="btn-toolbar">
|
||||
<div class="btn-group">
|
||||
<?php echo html::a($this->createLink('', '', '', '', false), '<i class="icon icon-cards-view"></i>', '', 'class="btn btn-icon"');?>
|
||||
<?php echo html::a($this->createLink('', '', '', '', false), '<i class="icon icon-list"></i>', '', 'class="btn btn-icon text-primary"');?>
|
||||
<a href="#" data-type="bycard" class="btn btn-icon btn-switch <?php if($editType == 'bycard') echo 'text-primary' ?>"><i class="icon icon-cards-view"></i></a>
|
||||
<a href="#" data-type="bylist" class="btn btn-icon btn-switch <?php if($editType == 'bylist') echo 'text-primary' ?>"><i class="icon icon-list"></i></a>
|
||||
</div>
|
||||
<a href="#" class="btn btn-primary"><?php echo $lang->group->addPriv?></a>
|
||||
<?php if(common::hasPriv('group', 'managePrivPackage')) echo html::a($this->createLink('group', 'managePrivPackage', ''), $lang->group->managePrivPackage, '', 'class="btn btn-primary"');?>
|
||||
@@ -28,17 +28,16 @@
|
||||
</div>
|
||||
<div id='mainContent'>
|
||||
<div class="main main-content">
|
||||
<form class="load-indicator main-form form-ajax" id="permissionEditForm" method="post" target='hiddenwin'>
|
||||
<table class='table table-hover table-striped table-bordered' id='privList'>
|
||||
<thead>
|
||||
<tr class="text-center">
|
||||
<th class="thWidth">模块</th>
|
||||
<th class="thWidth">权限包</th>
|
||||
<th colspan="2">权限</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</form>
|
||||
<?php
|
||||
if($editType == 'bycard')
|
||||
{
|
||||
include 'editmanageprivbycard.html.php';
|
||||
}
|
||||
else
|
||||
{
|
||||
include 'editmanageprivbylist.html.php';
|
||||
}?>
|
||||
|
||||
</div>
|
||||
<div class="side">
|
||||
<div class="priv-panel">
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/**
|
||||
* The editmanageprivbycard view file of group module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2021 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
|
||||
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
|
||||
* @author Feilong Guo <guofeilong@easycorp.ltd>
|
||||
* @package group
|
||||
* @version $Id: editmanageprivbylist.html.php 4769 2021-07-23 11:16:21Z $
|
||||
* @link https://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
|
||||
<form class="load-indicator main-form form-ajax" id="permissionEditForm" method="post" target='hiddenwin'>
|
||||
<table class='table table-hover table-striped table-bordered' id='privList'>
|
||||
<thead>
|
||||
<tr class="text-center permission-head">
|
||||
<th class="flex-sm">模块</th>
|
||||
<th class="flex-sm">权限包</th>
|
||||
<th class="flex-content">权限</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<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-content sorter-group">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
/**
|
||||
* The editmanageprivbylist view file of group module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2021 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
|
||||
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
|
||||
* @author Feilong Guo <guofeilong@easycorp.ltd>
|
||||
* @package group
|
||||
* @version $Id: editmanageprivbylist.html.php 4769 2021-07-23 11:16:21Z $
|
||||
* @link https://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<div id="mainMenu" class='clearfix'>
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php common::printBack(inlink('permissionedit', ''), 'btn btn-primary');?>
|
||||
<?php common::printBack(inlink('editManagePriv', ''), 'btn btn-primary');?>
|
||||
<div class="divider"></div>
|
||||
<div class="page-title">
|
||||
<span class="text" title='<?php echo $lang->group->managePrivPackage;?>'><?php echo $lang->group->managePrivPackage;?></span>
|
||||
@@ -24,6 +24,36 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-table'>
|
||||
<form class='main-table' id='privPackageForm' method='post' data-ride='table' data-nested='true' data-expand-nest-child='false' data-checkable='false' data-enable-empty-nested-row='true' data-replace-id='privPackageTableList' data-preserve-nested='true' data-nest-level-indent='22'>
|
||||
<table class='table has-sort-head table-fixed table-nested' id='privPackageList'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='table-nest-title c-name'>
|
||||
<?php echo $lang->privpackage->common;?>
|
||||
<a class='table-nest-toggle table-nest-toggle-global' data-expand-text='<?php echo $lang->expand; ?>' data-collapse-text='<?php echo $lang->collapse;?>'></a>
|
||||
</th>
|
||||
<th class='c-desc'><?php echo $lang->privpackage->desc;?></th>
|
||||
<th class='c-order'><?php echo $lang->sort;?></th>
|
||||
<th class='text-center c-actions-2'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id='privPackageTableList'>
|
||||
<?php foreach($packagesTreeList as $package):?>
|
||||
<tr <?php echo "data-id='$package->id' data-order='$package->order' data-parent='$package->parent' data-level='$package->grade' data-nest-parent='$package->parent' data-nest-path='$package->path'"?>>
|
||||
<td class='text-left has-prefix' title='<?php echo $package->name?>'><?php echo $package->name?></td>
|
||||
<td class='text-left' title='<?php echo $package->desc?>'><?php echo $package->desc?></td>
|
||||
<td><?php if(common::hasPriv('group', 'privPackageSort')) echo '<a class="sort-handler"><i class="icon-move"></i></a>';?></td>
|
||||
<td class='c-actions'>
|
||||
<?php
|
||||
if(common::hasPriv('group', 'editPrivPackage') and $package->grade == 3) common::printIcon('group', 'editPrivPackage', "packageID=$package->id", '', 'list', 'edit', '', 'iframe', true);
|
||||
if(common::hasPriv('group', 'deletePrivPackage') and $package->grade == 3) common::printIcon('group', 'deletePrivPackage', "packageID=$package->id", '', 'list', 'trash', 'hiddenwin');
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user