From 3427c23b5e1e321ac44802b4c30c0c4e08231ec0 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@local>
Date: 星期五, 06 十一月 2026 11:13:38 +0800
Subject: [PATCH] fix(bpm): 超级管理员始终可维护流程模型,修复「你不是该流程的管理员」死锁
---
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java
index 953115a..e5b5a3b 100644
--- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java
+++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java
@@ -6,6 +6,7 @@
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO;
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelSaveReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
@@ -204,6 +205,13 @@
private Model validateModelManager(String id, Long userId) {
Model model = validateModelExists(id);
BpmModelMetaInfoVO metaInfo = BpmModelConvert.INSTANCE.parseMetaInfo(model);
+ // 瓒呯骇绠$悊鍛樺缁堟嫢鏈夋祦绋嬫ā鍨嬬殑缁存姢鏉冮檺銆�
+ // 鑳屾櫙锛氬巻鍙叉ā鍨嬬殑 managerUserIds 鍙兘涓虹┖锛圢ULL / []锛夛紝鎴栨寚鍚戝凡鍒犻櫎 / 宸插彉鏇寸殑鐢ㄦ埛锛�
+ // 涓ユ牸鏍¢獙浼氳杩欎簺妯″瀷鍐嶄篃鏃犳硶淇敼锛堟閿侊紝瀹㈡埛鎶ャ�屼綘涓嶆槸璇ユ祦绋�(xxx)鐨勭鐞嗗憳銆嶅嵈鏃犳硶鑷剤锛夛紱
+ // 鍙﹀瀹㈡埛瑕佹眰鎶婃祦绋嬬鐞嗗憳鍥哄畾涓鸿秴绾х鐞嗗憳锛屾鏍¢獙瀵瑰叾涓嶅啀閫傜敤銆�
+ if (SecurityFrameworkUtils.isSuperAdmin()) {
+ return model;
+ }
if (metaInfo == null || !CollUtil.contains(metaInfo.getManagerUserIds(), userId)) {
throw exception(MODEL_UPDATE_FAIL_NOT_MANAGER, model.getName());
}
--
Gitblit v1.9.3