From dd63b853d0252f1fe63b40def48f8de83001ad50 Mon Sep 17 00:00:00 2001 From: zhangzhanwei Date: Thu, 26 Jun 2025 10:26:22 +0800 Subject: [PATCH] feat: Document download permission --- ui/src/permission/knowledge/system-manage.ts | 1 + ui/src/permission/knowledge/system-share.ts | 9 ++++++++- ui/src/permission/knowledge/workspace.ts | 10 ++++++++++ ui/src/router/modules/application-detail.ts | 2 +- ui/src/utils/permission/data.ts | 1 + ui/src/views/document/index.vue | 4 +++- ui/src/views/model/index.vue | 1 - 7 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ui/src/permission/knowledge/system-manage.ts b/ui/src/permission/knowledge/system-manage.ts index b66f76a8..fa36be34 100644 --- a/ui/src/permission/knowledge/system-manage.ts +++ b/ui/src/permission/knowledge/system-manage.ts @@ -28,6 +28,7 @@ const workspace = { doc_sync: () => false, doc_delete: () => false, doc_export: () => false, + doc_download: () => false, problem_create: () => false, problem_relate: () => false, diff --git a/ui/src/permission/knowledge/system-share.ts b/ui/src/permission/knowledge/system-share.ts index 92934290..5da0f253 100644 --- a/ui/src/permission/knowledge/system-share.ts +++ b/ui/src/permission/knowledge/system-share.ts @@ -124,7 +124,14 @@ const share = { ], 'OR' ), - + doc_download: () => + hasPermission ( + [ + RoleConst.ADMIN, + PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE + ], + 'OR' + ), problem_create: () => hasPermission ( [ diff --git a/ui/src/permission/knowledge/workspace.ts b/ui/src/permission/knowledge/workspace.ts index fd2c5d19..e155778b 100644 --- a/ui/src/permission/knowledge/workspace.ts +++ b/ui/src/permission/knowledge/workspace.ts @@ -163,6 +163,16 @@ const workspace = { ], 'OR', ), + doc_download: (source_id:string) => + hasPermission( + [ + RoleConst.ADMIN, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE.getKnowledgeWorkspaceResourcePermission(source_id), + PermissionConst.KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE.getWorkspacePermissionWorkspaceManageRole, + ], + 'OR', + ), problem_create: (source_id:string) => hasPermission( [ diff --git a/ui/src/router/modules/application-detail.ts b/ui/src/router/modules/application-detail.ts index 54d6e197..f548e29d 100644 --- a/ui/src/router/modules/application-detail.ts +++ b/ui/src/router/modules/application-detail.ts @@ -1,7 +1,7 @@ import { ChatUserResourceEnum } from '@/enums/workspaceChatUser' import { get_next_route } from '@/utils/permission' -import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data' +import { PermissionConst, RoleConst } from '@/utils/permission/data' const ApplicationDetailRouter = { path: '/application/:id/:type', diff --git a/ui/src/utils/permission/data.ts b/ui/src/utils/permission/data.ts index 28a346f8..91eb6da8 100644 --- a/ui/src/utils/permission/data.ts +++ b/ui/src/utils/permission/data.ts @@ -100,6 +100,7 @@ const PermissionConst = { KNOWLEDGE_DOCUMENT_VECTOR:new Permission('KNOWLEDGE_DOCUMENT:READ+VECTOR'), KNOWLEDGE_DOCUMENT_GENERATE:new Permission('KNOWLEDGE_DOCUMENT:READ+GENERATE'), KNOWLEDGE_DOCUMENT_EXPORT:new Permission('KNOWLEDGE_DOCUMENT:READ+EXPORT'), + KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE:new Permission('KNOWLEDGE_DOCUMENT:READ+DOWNLOAD'), KNOWLEDGE_PROBLEM_READ:new Permission('KNOWLEDGE_PROBLEM:READ'), KNOWLEDGE_PROBLEM_CREATE:new Permission('KNOWLEDGE_PROBLEM:READ+CREATE'), diff --git a/ui/src/views/document/index.vue b/ui/src/views/document/index.vue index c807aef0..cd0587fe 100644 --- a/ui/src/views/document/index.vue +++ b/ui/src/views/document/index.vue @@ -444,7 +444,9 @@ {{ $t('views.document.setting.export') }} Zip - + {{ $t('views.document.setting.download') }}