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') }}