From b6c0dc29218252bf207440446276b53d66ba35e1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 23 十月 2026 19:06:13 +0800
Subject: [PATCH] feat(config): 添加HSC公司配置和部署脚本

---
 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/agent/SystemAgentImportBridgeController.java |   30 +++++++++++++++++++++++-------
 1 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/agent/SystemAgentImportBridgeController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/agent/SystemAgentImportBridgeController.java
index 0f8c195..f92a84e 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/agent/SystemAgentImportBridgeController.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/agent/SystemAgentImportBridgeController.java
@@ -65,10 +65,22 @@
         return success(bridgeService.bindAttachment(sessionId, request.getBlobId()));
     }
 
+    @DeleteMapping("/attachments/{attachmentId}")
+    public CommonResult<Boolean> deleteAttachment(
+            @RequestHeader(value = "X-Agent-Service-Token", required = false) String serviceToken,
+            @RequestHeader(value = "X-Agent-Delegation-Token", required = false) String delegationToken,
+            @RequestHeader(value = "X-Agent-Task-Id", required = false) String taskId,
+            @PathVariable Long attachmentId) {
+        bridgeGuard.requireAny(serviceToken, delegationToken, taskId, "attachment.delete", null, attachmentId);
+        bridgeService.deleteImportAttachment(attachmentId);
+        return success(true);
+    }
+
     @PostMapping("/authorize")
-    @PreAuthorize(IMPORT_PERMISSIONS_EXPR)
     public CommonResult<Map<String, String>> authorize(
             @RequestHeader(value = "X-Agent-Service-Token", required = false) String serviceToken,
+            @RequestHeader(value = "X-Agent-Delegation-Token", required = false) String delegationToken,
+            @RequestHeader(value = "X-Agent-Task-Id", required = false) String taskId,
             @Valid @RequestBody AuthorizeRequest request) {
         if (!ACTIONS.contains(request.getAction())) {
             throw new AgentBridgeException(HttpStatus.FORBIDDEN, "ACTION_FORBIDDEN", "涓嶆敮鎸佺殑鏅鸿兘浣撴搷浣�");
@@ -77,26 +89,30 @@
         if (request.getAction().startsWith("conversation.")) {
             String permission = MODULE_PERMISSIONS.get(request.getResource());
             principal = permission == null
-                    ? bridgeGuard.requireAny(serviceToken)
-                    : bridgeGuard.require(serviceToken, permission);
+                    ? bridgeGuard.requireAny(serviceToken, delegationToken, taskId, request.getAction(),
+                    request.getResource(), null)
+                    : bridgeGuard.require(serviceToken, delegationToken, taskId, request.getAction(), permission,
+                    request.getResource(), null);
         } else {
-            principal = bridgeGuard.require(serviceToken, SystemAgentBridgeGuard.PERMISSION_ITEM_IMPORT);
+            principal = bridgeGuard.require(serviceToken, delegationToken, taskId, request.getAction(),
+                    SystemAgentBridgeGuard.PERMISSION_ITEM_IMPORT, "mdm.item",
+                    requiresAttachmentOwnership(request.getAction()) ? parseId(request.getResource()) : null);
         }
         if (requiresAttachmentOwnership(request.getAction())) {
             bridgeService.requireOwnedAttachmentRef(parseId(request.getResource()));
         }
         // read/review/read_receipt 鐨勪换鍔� UUID 鎵�鏈夋潈鐢� Python checkpoint 浣滅敤鍩熸牳楠岋紱鏈閲嶆煡褰撳墠鎸夐挳鏉冮檺銆�
         return success(Map.of("user_id", String.valueOf(principal.userId()),
-                "tenant_id", String.valueOf(principal.tenantId()),
                 "policy_revision", principal.policyRevision()));
     }
 
     @GetMapping("/attachments/{attachmentId}")
-    @PreAuthorize(IMPORT_PERMISSIONS_EXPR)
     public ResponseEntity<FileSystemResource> downloadAttachment(
             @RequestHeader(value = "X-Agent-Service-Token", required = false) String serviceToken,
+            @RequestHeader(value = "X-Agent-Delegation-Token", required = false) String delegationToken,
+            @RequestHeader(value = "X-Agent-Task-Id", required = false) String taskId,
             @PathVariable Long attachmentId) {
-        bridgeGuard.requireAny(serviceToken);
+        bridgeGuard.requireAny(serviceToken, delegationToken, taskId, "attachment.read", null, attachmentId);
         SystemAgentAttachmentRef ref = bridgeService.requireOwnedAttachmentRef(attachmentId);
         return ResponseEntity.ok().contentType(MediaType.APPLICATION_OCTET_STREAM)
                 .contentLength(ref.byteSize())

--
Gitblit v1.9.3