From f2756730ec3ba3fb065d626da84a8caf63192a4b Mon Sep 17 00:00:00 2001 From: wangyuting Date: Wed, 24 Jul 2024 13:57:21 +0800 Subject: [PATCH] * [misc] Fix check conditions error in the workflow extension action on the browse page. --- framework/helper.class.php | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/framework/helper.class.php b/framework/helper.class.php index f3039c84ed..898bb7021f 100644 --- a/framework/helper.class.php +++ b/framework/helper.class.php @@ -753,22 +753,19 @@ function initItemActions(object &$item, string $actionMenu, array $actionList, o if(!$method || !common::hasPriv($module, $method, $item)) return $isClickable; /* Check flow conditions for this object. */ - if(empty($model->enables) && $model->config->edition != 'open') + if($model->config->edition != 'open') { + $flowActions = $model->loadModel('workflowaction')->getList($module); + $model->loadModel('flow'); - $flowActions = $model->loadModel('workflowaction')->getList($module); - $model->enables = array(); foreach($flowActions as $flowAction) { - $model->enables[$flowAction->action] = $flowAction->status == 'enable'; - if($flowAction->status == 'enable' && $flowAction->extensionType != 'none' && !empty($flowAction->conditions)) $model->enables[$flowAction->action] = $flowAction->conditions; + if($flowAction->action == $method && $flowAction->extensionType != 'none' && $flowAction->status == 'enable' && !empty($flowAction->conditions)) + { + $isClickable = $model->flow->checkConditions($flowAction->conditions, $item); + } } } - if(isset($model->enables[$method])) - { - if(!$model->enables[$method]) $isClickable = false; - if(is_array($model->enables[$method]) && !$model->flow->checkConditions($model->enables[$method], $item)) $isClickable = false; - } $item->actions[] = array('name' => $action, 'disabled' => !$isClickable);