* Fix bug #38029.
This commit is contained in:
@@ -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';
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
@@ -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');
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user