From 4b6d8344e8c07d8ea6c5129a3768ea0bd73a5dd8 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 15 Nov 2024 09:06:17 +0800 Subject: [PATCH] * [refac bug #38813] Add action condition for get doc dynmic. --- module/action/model.php | 5 ++++- module/doc/model.php | 2 ++ module/execution/ui/task.html.php | 2 ++ module/task/ui/view.html.php | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/module/action/model.php b/module/action/model.php index 6a2c452608..5713925de2 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -949,18 +949,21 @@ class actionModel extends model * 通过视野获取用户可访问的动态类型。 * Get the action types that the user can access through the vision. * + * @param string $module * @access public * @return string */ - public function getActionCondition(): string + public function getActionCondition($module = ''): string { if($this->app->user->admin) return ''; $actionCondition = ''; if(!empty($this->app->user->rights['acls']['actions'])) { + if($module && !isset($this->app->user->rights['acls']['actions'][$module])) return '1 != 1'; foreach($this->app->user->rights['acls']['actions'] as $moduleName => $actions) { + if($module && $module != $moduleName) continue; if(isset($this->lang->mainNav->{$moduleName}) && !empty($this->app->user->rights['acls']['views']) && !isset($this->app->user->rights['acls']['views'][$moduleName])) continue; $actionCondition .= "(`objectType` = '{$moduleName}' AND `action` " . helper::dbIN(array_keys($actions)) . ") OR "; } diff --git a/module/doc/model.php b/module/doc/model.php index cf93546897..634a1abd88 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -3259,6 +3259,7 @@ class docModel extends model $allLibs = $this->getLibs('hasApi'); $hasPrivDocIdList = $this->getPrivDocs(array(), 0, 'all'); $apiList = $this->loadModel('api')->getPrivApis(); + $actionCondition = $this->loadModel('action')->getActionCondition('doc'); $actions = $this->dao->select('*')->from(TABLE_ACTION) ->where('vision')->eq($this->config->vision) @@ -3271,6 +3272,7 @@ class docModel extends model ->orWhere('(objectType')->eq('api') ->andWhere('objectID')->in(array_keys($apiList)) ->markRight(2) + ->beginIF($actionCondition)->andWhere("($actionCondition)")->fi() ->orderBy('date_desc,id_asc') ->page($pager) ->fetchAll(); diff --git a/module/execution/ui/task.html.php b/module/execution/ui/task.html.php index a65126e86f..0852a654ab 100644 --- a/module/execution/ui/task.html.php +++ b/module/execution/ui/task.html.php @@ -29,6 +29,7 @@ $canBatchCreate = common::canModify('execution', $execution) && hasPriv('task', $canImportTask = common::canModify('execution', $execution) && hasPriv('execution', 'importTask'); $canImportBug = common::canModify('execution', $execution) && hasPriv('execution', 'importBug'); +$app->loadLang('my'); $this->loadModel('task'); $importItems = array(); if(common::canModify('execution', $execution)) @@ -56,6 +57,7 @@ $cols = $this->loadModel('datatable')->getSetting('execution'); if($execution->type != 'stage') unset($cols['design']); $tableData = initTableData($tasks, $cols, $this->task); +$lang->task->statusList['changed'] = $lang->my->storyChanged; foreach($tableData as $task) { $task->rawStatus = $task->status; diff --git a/module/task/ui/view.html.php b/module/task/ui/view.html.php index bb68c72997..207fffd53b 100644 --- a/module/task/ui/view.html.php +++ b/module/task/ui/view.html.php @@ -95,7 +95,7 @@ if(!$task->fromBug && $task->story) 'toolbar' => $task->needConfirm ? array ( array('text' => $lang->task->storyChange, 'class' => 'ghost pointer-events-none'), - array('text' => $lang->confirm, 'type' => 'primary', 'url' => createLink('task', 'confirmStoryChange', "taskID={$task->id}")) + array('text' => $lang->confirm, 'type' => 'primary', 'class' => 'ajax-submit', 'url' => createLink('task', 'confirmStoryChange', "taskID={$task->id}")) ) : null, 'sections' => array (