This commit is contained in:
zhaoke
2023-09-04 12:47:49 +08:00
parent f605cf2b0d
commit 14e1673cf5
6 changed files with 47 additions and 42 deletions
+1
View File
@@ -291,6 +291,7 @@ $config->openMethods[] = 'instance.createexternalapp';
$config->openMethods[] = 'instance.editexternalapp';
$config->openMethods[] = 'instance.deleteexternalapp';
$config->openMethods[] = 'search.deletezinquery';
$config->openMethods[] = 'space.edit';
$config->openModules = array();
$config->openModules[] = 'install';
+2 -1
View File
@@ -612,6 +612,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);
}
@@ -711,7 +712,7 @@ function initItemActions(object &$item, string $actionMenu, array $actionList, o
}
}
if(!$isClickable && (!$method || !common::hasPriv($module, $method))) return $isClickable;
if(!$method || !common::hasPriv($module, $method)) return $isClickable;
$item->actions[] = array('name' => $action, 'disabled' => !$isClickable);
+3
View File
@@ -2631,6 +2631,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", $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;
+18 -18
View File
@@ -21,25 +21,25 @@ $config->instance->enableAutoRestore = in_array('auto-rollback', $features);
global $lang, $app;
$app->loadLang('space');
$config->instance->actionList['start']['icon'] = 'play';
$config->instance->actionList['start']['className'] = 'ajax-submit';
$config->instance->actionList['start']['hint'] = $lang->instance->start;
$config->instance->actionList['start']['text'] = $lang->instance->start;
$config->instance->actionList['start']['url'] = array('module' => 'instance', 'method' => 'ajaxStart', 'params' => 'id={id}');
$config->instance->actionList['ajaxStart']['icon'] = 'play';
$config->instance->actionList['ajaxStart']['className'] = 'ajax-submit';
$config->instance->actionList['ajaxStart']['hint'] = $lang->instance->start;
$config->instance->actionList['ajaxStart']['text'] = $lang->instance->start;
$config->instance->actionList['ajaxStart']['url'] = array('module' => 'instance', 'method' => 'ajaxStart', 'params' => 'id={id}');
$config->instance->actionList['stop']['icon'] = 'off';
$config->instance->actionList['stop']['className'] = 'ajax-submit';
$config->instance->actionList['stop']['hint'] = $lang->instance->stop;
$config->instance->actionList['stop']['text'] = $lang->instance->stop;
$config->instance->actionList['stop']['data-confirm'] = $lang->instance->notices['confirmStop'];
$config->instance->actionList['ajaxStop']['icon'] = 'off';
$config->instance->actionList['ajaxStop']['className'] = 'ajax-submit';
$config->instance->actionList['ajaxStop']['hint'] = $lang->instance->stop;
$config->instance->actionList['ajaxStop']['text'] = $lang->instance->stop;
$config->instance->actionList['ajaxStop']['data-confirm'] = $lang->instance->notices['confirmStop'];
$config->instance->actionList['stop']['url'] = array('module' => 'instance', 'method' => 'ajaxStop', 'params' => 'id={id}');
$config->instance->actionList['uninstall']['icon'] = 'trash';
$config->instance->actionList['uninstall']['hint'] = $lang->instance->uninstall;
$config->instance->actionList['uninstall']['text'] = $lang->instance->uninstall;
$config->instance->actionList['uninstall']['className'] = 'ajax-submit';
$config->instance->actionList['uninstall']['data-confirm'] = $lang->instance->notices['confirmUninstall'];
$config->instance->actionList['uninstall']['url'] = array('module' => 'instance', 'method' => 'ajaxUninstall', 'params' => 'id={id}');
$config->instance->actionList['ajaxUninstall']['icon'] = 'trash';
$config->instance->actionList['ajaxUninstall']['hint'] = $lang->instance->uninstall;
$config->instance->actionList['ajaxUninstall']['text'] = $lang->instance->uninstall;
$config->instance->actionList['ajaxUninstall']['className'] = 'ajax-submit';
$config->instance->actionList['ajaxUninstall']['data-confirm'] = $lang->instance->notices['confirmUninstall'];
$config->instance->actionList['ajaxUninstall']['url'] = array('module' => 'instance', 'method' => 'ajaxUninstall', 'params' => 'id={id}');
$config->instance->actionList['visit']['icon'] = 'menu-my';
$config->instance->actionList['visit']['hint'] = $lang->instance->visit;
@@ -56,7 +56,7 @@ $config->instance->actionList['upgrade']['url'] = helper::createLink('in
$config->instance->actions = new stdclass();
$config->instance->actions->view = array();
$config->instance->actions->view['mainActions'] = array('visit', 'start', 'stop', 'upgrade');
$config->instance->actions->view['suffixActions'] = array('uninstall');
$config->instance->actions->view['mainActions'] = array('visit', 'ajaxStart', 'ajaxStop', 'upgrade');
$config->instance->actions->view['suffixActions'] = array('ajaxUninstall');
$config->instance->devopsApps = array(89 => 'gitea', 58 => 'gitlab', 59 => 'jenkins', 60 => 'sonarqube', 118 => 'nexus');
+7 -7
View File
@@ -2049,13 +2049,13 @@ class InstanceModel extends model
return false;
}
if($action == 'start') return $this->canDo('start', $instance) && commonModel::hasPriv('instance', 'ajaxStart');
if($action == 'stop') return $this->canDo('stop', $instance) && commonModel::hasPriv('instance', 'ajaxStop');
if($action == 'ajaxUninstall') return $this->canDo('uninstall', $instance) && commonModel::hasPriv('instance', 'ajaxUninstall');
if($action == 'visit') return !empty($instance->domain) && $this->canDo('visit', $instance) && commonModel::hasPriv('instance', 'visit');
if($action == 'upgrade') return !empty($instance->latestVersion) && commonModel::hasPriv('instance', 'upgrade');
if($action == 'edit') return false;
if($action == 'bindUser') return false;
if($action == 'ajaxStart') return $this->canDo('start', $instance);
if($action == 'ajaxStop') return $this->canDo('stop', $instance);
if($action == 'ajaxUninstall') return $this->canDo('uninstall', $instance);
if($action == 'visit') return !empty($instance->domain) && $this->canDo('visit', $instance);
if($action == 'upgrade') return !empty($instance->latestVersion);
if($action == 'edit') return false;
if($action == 'bindUser') return false;
return true;
}
+16 -16
View File
@@ -35,25 +35,25 @@ $config->space->dtable->fieldList['createdAt']['type'] = 'datetime';
$config->space->dtable->fieldList['createdAt']['group'] = 'created';
$config->space->dtable->fieldList['actions']['type'] = 'actions';
$config->space->dtable->fieldList['actions']['menu'] = array('visit', 'start|stop', 'edit', 'bindUser', 'uninstall', 'upgrade');
$config->space->dtable->fieldList['actions']['menu'] = array('visit', 'ajaxStart|ajaxStop', 'edit', 'bindUser', 'ajaxUninstall', 'upgrade');
if(!$config->inQuickon) $config->space->dtable->fieldList['actions']['menu'] = array('visit', 'edit', 'bindUser');
$config->space->dtable->fieldList['actions']['list']['start']['icon'] = 'play';
$config->space->dtable->fieldList['actions']['list']['start']['className'] = 'ajax-submit';
$config->space->dtable->fieldList['actions']['list']['start']['hint'] = $lang->instance->start;
$config->space->dtable->fieldList['actions']['list']['start']['url'] = helper::createLink('instance', 'ajaxStart', "id={id}");
$config->space->dtable->fieldList['actions']['list']['ajaxStart']['icon'] = 'play';
$config->space->dtable->fieldList['actions']['list']['ajaxStart']['className'] = 'ajax-submit';
$config->space->dtable->fieldList['actions']['list']['ajaxStart']['hint'] = $lang->instance->start;
$config->space->dtable->fieldList['actions']['list']['ajaxStart']['url'] = array('module' => 'instance', 'method' => 'ajaxStart', 'params' => "id={id}");
$config->space->dtable->fieldList['actions']['list']['stop']['icon'] = 'off';
$config->space->dtable->fieldList['actions']['list']['stop']['className'] = 'ajax-submit';
$config->space->dtable->fieldList['actions']['list']['stop']['hint'] = $lang->instance->stop;
$config->space->dtable->fieldList['actions']['list']['stop']['url'] = helper::createLink('instance', 'ajaxStop', "id={id}");
$config->space->dtable->fieldList['actions']['list']['stop']['data-confirm'] = $lang->instance->notices['confirmStop'];
$config->space->dtable->fieldList['actions']['list']['ajaxStop']['icon'] = 'off';
$config->space->dtable->fieldList['actions']['list']['ajaxStop']['className'] = 'ajax-submit';
$config->space->dtable->fieldList['actions']['list']['ajaxStop']['hint'] = $lang->instance->stop;
$config->space->dtable->fieldList['actions']['list']['ajaxStop']['url'] = array('module' => 'instance', 'method' => 'ajaxStop', 'params' => "id={id}");
$config->space->dtable->fieldList['actions']['list']['ajaxStop']['data-confirm'] = $lang->instance->notices['confirmStop'];
$config->space->dtable->fieldList['actions']['list']['uninstall']['icon'] = 'trash';
$config->space->dtable->fieldList['actions']['list']['uninstall']['hint'] = $lang->instance->uninstall;
$config->space->dtable->fieldList['actions']['list']['uninstall']['className'] = 'ajax-submit';
$config->space->dtable->fieldList['actions']['list']['uninstall']['data-confirm'] = $lang->instance->notices['confirmUninstall'];
$config->space->dtable->fieldList['actions']['list']['uninstall']['url'] = array('module' => 'instance', 'method' => 'ajaxUninstall', 'params' => 'id={orgID}&type={type}');
$config->space->dtable->fieldList['actions']['list']['ajaxUninstall']['icon'] = 'trash';
$config->space->dtable->fieldList['actions']['list']['ajaxUninstall']['hint'] = $lang->instance->uninstall;
$config->space->dtable->fieldList['actions']['list']['ajaxUninstall']['className'] = 'ajax-submit';
$config->space->dtable->fieldList['actions']['list']['ajaxUninstall']['data-confirm'] = $lang->instance->notices['confirmUninstall'];
$config->space->dtable->fieldList['actions']['list']['ajaxUninstall']['url'] = array('module' => 'instance', 'method' => 'ajaxUninstall', 'params' => 'id={orgID}&type={type}');
$config->space->dtable->fieldList['actions']['list']['visit']['icon'] = 'menu-my';
$config->space->dtable->fieldList['actions']['list']['visit']['hint'] = $lang->instance->visit;
@@ -64,7 +64,7 @@ $config->space->dtable->fieldList['actions']['list']['upgrade']['icon'] =
$config->space->dtable->fieldList['actions']['list']['upgrade']['data-toggle'] = 'modal';
$config->space->dtable->fieldList['actions']['list']['upgrade']['data-size'] = 'sm';
$config->space->dtable->fieldList['actions']['list']['upgrade']['hint'] = $lang->space->upgrade;
$config->space->dtable->fieldList['actions']['list']['upgrade']['url'] = helper::createLink('instance', 'upgrade', "id={id}");
$config->space->dtable->fieldList['actions']['list']['upgrade']['url'] = array('module' => 'instance', 'method' => 'upgrade', 'params' => "id={id}");
$config->space->dtable->fieldList['actions']['list']['edit']['icon'] = 'edit';
$config->space->dtable->fieldList['actions']['list']['edit']['hint'] = $lang->edit;