diff --git a/config/zentaopms.php b/config/zentaopms.php index 7ddfc719c9..cb6c6c5951 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -240,11 +240,62 @@ $config->openMethods[] = 'testcase.getxmindimport'; $config->openMethods[] = 'testcase.showxmindimport'; $config->openMethods[] = 'testcase.savexmindimport'; $config->openMethods[] = 'space.createapplication'; +$config->openMethods[] = 'sonarqube.create'; +$config->openMethods[] = 'sonarqube.edit'; +$config->openMethods[] = 'sonarqube.browseproject'; +$config->openMethods[] = 'sonarqube.createproject'; +$config->openMethods[] = 'sonarqube.deleteproject'; +$config->openMethods[] = 'sonarqube.execjob'; +$config->openMethods[] = 'sonarqube.reportview'; +$config->openMethods[] = 'sonarqube.browseissue'; +$config->openMethods[] = 'gitlab.create'; +$config->openMethods[] = 'gitlab.edit'; +$config->openMethods[] = 'gitlab.importissue'; +$config->openMethods[] = 'gitlab.binduser'; +$config->openMethods[] = 'gitlab.browseproject'; +$config->openMethods[] = 'gitlab.createproject'; +$config->openMethods[] = 'gitlab.editproject'; +$config->openMethods[] = 'gitlab.deleteproject'; +$config->openMethods[] = 'gitlab.browsegroup'; +$config->openMethods[] = 'gitlab.creategroup'; +$config->openMethods[] = 'gitlab.editgroup'; +$config->openMethods[] = 'gitlab.deletegroup'; +$config->openMethods[] = 'gitlab.managegroupmembers'; +$config->openMethods[] = 'gitlab.browseuser'; +$config->openMethods[] = 'gitlab.createuser'; +$config->openMethods[] = 'gitlab.edituser'; +$config->openMethods[] = 'gitlab.createbranch'; +$config->openMethods[] = 'gitlab.browsebranch'; +$config->openMethods[] = 'gitlab.webhook'; +$config->openMethods[] = 'gitlab.createwebhook'; +$config->openMethods[] = 'gitlab.manageprojectmembers'; +$config->openMethods[] = 'gitlab.managebranchpriv'; +$config->openMethods[] = 'gitlab.managetagpriv'; +$config->openMethods[] = 'gitlab.browsetag'; +$config->openMethods[] = 'gitlab.createtag'; +$config->openMethods[] = 'gitlab.deletetag'; +$config->openMethods[] = 'gogs.create'; +$config->openMethods[] = 'gogs.edit'; +$config->openMethods[] = 'gogs.binduser'; +$config->openMethods[] = 'gitea.create'; +$config->openMethods[] = 'gitea.edit'; +$config->openMethods[] = 'gitea.binduser'; +$config->openMethods[] = 'jenkins.create'; +$config->openMethods[] = 'jenkins.edit'; +$config->openMethods[] = 'instance.createexternalapp'; +$config->openMethods[] = 'instance.editexternalapp'; +$config->openMethods[] = 'instance.deleteexternalapp'; +$config->openMethods[] = 'space.edit'; $config->openModules = array(); $config->openModules[] = 'install'; $config->openModules[] = 'upgrade'; $config->openModules[] = 'im'; +$config->openModules[] = 'gitlab'; +$config->openModules[] = 'gogs'; +$config->openModules[] = 'gitea'; +$config->openModules[] = 'jenkins'; +$config->openModules[] = 'sonarqube'; /* Define the tables. */ define('TABLE_COMPANY', '`' . $config->db->prefix . 'company`'); diff --git a/framework/helper.class.php b/framework/helper.class.php index ebe4cd6695..c741c1a760 100644 --- a/framework/helper.class.php +++ b/framework/helper.class.php @@ -575,6 +575,7 @@ function initTableData(array $items, array &$fieldList, object $model = null): a if(count($item->actions) > $maxActionCount) $maxActionCount = count($item->actions); } if(isset($fieldList['actions'])) $fieldList['actions']['minWidth'] = $maxActionCount * 24 + 24; + if($fieldList['actions']['minWidth'] < 48) $fieldList['actions']['minWidth'] = 48; return array_values($items); } diff --git a/module/common/model.php b/module/common/model.php index 7ead48fdb2..37f96a9b45 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -2587,6 +2587,9 @@ EOF; /* Check the parent object is closed. */ if(!empty($method) and strpos('close|batchclose', $method) === false and !commonModel::canBeChanged($module, $object)) return false; + /* Check the method is openMethod. */ + if(in_array("$module.$method", $app->config->openMethods)) return true; + /* Check is the super admin or not. */ if(!empty($app->user->admin) or strpos($app->company->admins, ",{$app->user->account},") !== false) return true; diff --git a/module/group/config.php b/module/group/config.php index c08de977cf..33e26e4df2 100644 --- a/module/group/config.php +++ b/module/group/config.php @@ -82,3 +82,5 @@ $config->group->actionList['delete']['icon'] = 'trash'; $config->group->actionList['delete']['text'] = $lang->group->delete; $config->group->actionList['delete']['hint'] = $lang->group->delete; $config->group->actionList['delete']['url'] = 'javascript:confirmDelete("{id}", "{name}")'; + +$config->group->hiddenPriv = array('system-dashboard', 'store-browse', 'store-appView', 'space-getStoreAppInfo', 'system-dblist', 'system-configdomain', 'system-ossview'); \ No newline at end of file diff --git a/module/group/control.php b/module/group/control.php index eca8207f6a..79a570e0ed 100644 --- a/module/group/control.php +++ b/module/group/control.php @@ -263,6 +263,11 @@ class group extends control continue; } + if(!$this->config->inQuickon && in_array("{$priv->module}-{$priv->method}", $this->config->group->hiddenPriv)) + { + continue; + } + if(!isset($privList[$priv->parentCode])) $privList[$priv->parentCode] = array(); if(!is_array($privList[$priv->parentCode])) $privList[$priv->parentCode] = array(); if(!isset($privList[$priv->parentCode][$priv->parent])) $privList[$priv->parentCode][$priv->parent] = array(); diff --git a/module/ops/lang/zh-cn.php b/module/ops/lang/zh-cn.php index 93e13faea9..542fc346b0 100644 --- a/module/ops/lang/zh-cn.php +++ b/module/ops/lang/zh-cn.php @@ -1,5 +1,5 @@ ops->common = 'devops设置'; +$lang->ops->common = 'DevOps设置'; $lang->ops->setting = '设置'; $lang->ops->provider = '服务商'; $lang->ops->provider = '服务商'; diff --git a/module/ops/lang/zh-tw.php b/module/ops/lang/zh-tw.php index 93e13faea9..542fc346b0 100644 --- a/module/ops/lang/zh-tw.php +++ b/module/ops/lang/zh-tw.php @@ -1,5 +1,5 @@ ops->common = 'devops设置'; +$lang->ops->common = 'DevOps设置'; $lang->ops->setting = '设置'; $lang->ops->provider = '服务商'; $lang->ops->provider = '服务商';