From 85ebd22c21567c16d3c39173d202d7fa85a2fd54 Mon Sep 17 00:00:00 2001 From: zhangzhanwei Date: Tue, 24 Jun 2025 17:16:25 +0800 Subject: [PATCH] feat: Share tool permission --- ui/src/permission/tool/system-share.ts | 63 ++++++++++++++++--- ui/src/permission/tool/workspace.ts | 7 +-- ui/src/router/modules/system.ts | 8 +++ ui/src/views/knowledge/index.vue | 1 - .../tool/component/ToolListContainer.vue | 14 +---- 5 files changed, 68 insertions(+), 25 deletions(-) diff --git a/ui/src/permission/tool/system-share.ts b/ui/src/permission/tool/system-share.ts index ef8033e41..abae4fd56 100644 --- a/ui/src/permission/tool/system-share.ts +++ b/ui/src/permission/tool/system-share.ts @@ -3,12 +3,61 @@ import { ComplexPermission } from '@/utils/permission/type' import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data' const share = { is_share: () => false, - delete: () => false, - create: () => false, - switch: () => false, - edit: () => false, - copy: () => false, - export: () => false, - debug: () => false, + create: () => + hasPermission( + [ + RoleConst.ADMIN, + PermissionConst.SHARED_TOOL_CREATE, + ], + 'OR', + ), + delete: () => + hasPermission( + [ + RoleConst.ADMIN, + PermissionConst.SHARED_TOOL_DELETE, + ], + 'OR', + ), + switch: () => + hasPermission( + [ + RoleConst.ADMIN, + PermissionConst.SHARED_TOOL_EDIT, + ], + 'OR', + ), + edit: () => + hasPermission( + [ + RoleConst.ADMIN, + PermissionConst.SHARED_TOOL_EDIT, + ], + 'OR', + ), + copy: () => + hasPermission( + [ + RoleConst.ADMIN, + PermissionConst.SHARED_TOOL_CREATE, + ], + 'OR', + ), + export: () => + hasPermission( + [ + RoleConst.ADMIN, + PermissionConst.SHARED_TOOL_EXPORT, + ], + 'OR', + ), + debug: () => + hasPermission( + [ + RoleConst.ADMIN, + PermissionConst.SHARED_TOOL_DEBUG, + ], + 'OR', + ), } export default share diff --git a/ui/src/permission/tool/workspace.ts b/ui/src/permission/tool/workspace.ts index 1dbf2a098..3a1332d0f 100644 --- a/ui/src/permission/tool/workspace.ts +++ b/ui/src/permission/tool/workspace.ts @@ -4,12 +4,7 @@ import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/dat const workspace = { is_share: () => hasPermission( - new ComplexPermission( - [RoleConst.ADMIN], - [PermissionConst.SHARED_TOOL_READ], - [EditionConst.IS_EE], - 'OR', - ), + [EditionConst.IS_EE], 'OR', ), delete: () => diff --git a/ui/src/router/modules/system.ts b/ui/src/router/modules/system.ts index 08b6bb1c6..ec415a9ea 100644 --- a/ui/src/router/modules/system.ts +++ b/ui/src/router/modules/system.ts @@ -145,6 +145,14 @@ const systemRouter = { activeMenu: '/system', parentPath: '/system', parentName: 'system', + permission: [ + new ComplexPermission( + [RoleConst.ADMIN], + [PermissionConst.SHARED_TOOL_READ], + [EditionConst.IS_EE], + 'OR' + ) + ] }, component: () => import('@/views/system-shared/ToolSharedIndex.vue'), }, diff --git a/ui/src/views/knowledge/index.vue b/ui/src/views/knowledge/index.vue index 1835fb5b8..0de0b50b0 100644 --- a/ui/src/views/knowledge/index.vue +++ b/ui/src/views/knowledge/index.vue @@ -189,7 +189,6 @@ @click=" router.push({ path: `/knowledge/${item.id}/${currentFolder.id}/document` }) " - v-if="permissionPrecise.single(item.id)" >