From d786a451cb5607cfcf70ba610abd4df9dee38fd3 Mon Sep 17 00:00:00 2001 From: panxinying Date: Fri, 9 Oct 2026 11:48:46 +0800 Subject: [PATCH] feat: tool permission annotations for workspace and system --- ui/src/permission/modules/tool/system.ts | 33 ++++++++++ ui/src/permission/modules/tool/workspace.ts | 66 +++++++++++++++++++ .../system/resource-management/tool/index.vue | 17 ++--- ui/src/views/tool/index.vue | 22 ++++--- 4 files changed, 120 insertions(+), 18 deletions(-) diff --git a/ui/src/permission/modules/tool/system.ts b/ui/src/permission/modules/tool/system.ts index d50977e9c9e..f1fc7ca6c66 100644 --- a/ui/src/permission/modules/tool/system.ts +++ b/ui/src/permission/modules/tool/system.ts @@ -26,20 +26,53 @@ const system = { isShare: () => canSys(P.SHARED_TOOL_READ), // —— 工具资源 —— + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)编辑权限 + * */ edit: () => canSys(P.RESOURCE_TOOL_EDIT), switch: () => canSys(P.RESOURCE_TOOL_EDIT), debug: () => canSys(P.RESOURCE_TOOL_EDIT), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)删除权限 + * */ delete: () => canSys(P.RESOURCE_TOOL_DELETE), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)发布权限 + * */ publish: () => canSys(P.RESOURCE_TOOL_PUBLISH), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)导出权限 + * */ export: () => canSys(P.RESOURCE_TOOL_EXPORT), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)资源授权权限 + * */ auth: () => canSys(P.RESOURCE_TOOL_AUTH), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)查看关联资源权限 + * */ relateMap: () => canSys(P.RESOURCE_TOOL_RELATE_RESOURCE_VIEW), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)查看执行记录权限 + * */ record: () => canSys(P.RESOURCE_TOOL_EXECUTE_RECORD), // —— 触发器 —— + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)查看触发器权限 + * */ triggerRead: () => canSys(P.RESOURCE_TOOL_TRIGGER_READ), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)创建触发器权限 + * */ triggerCreate: () => canSys(P.RESOURCE_TOOL_TRIGGER_CREATE), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)编辑触发器权限 + * */ triggerEdit: () => canSys(P.RESOURCE_TOOL_TRIGGER_EDIT), + /** + * 系统「工具资源管理」(系统 > 资源管理 > 工具)删除触发器权限 + * */ triggerDelete: () => canSys(P.RESOURCE_TOOL_TRIGGER_DELETE), } diff --git a/ui/src/permission/modules/tool/workspace.ts b/ui/src/permission/modules/tool/workspace.ts index a0542997774..42a572debbc 100644 --- a/ui/src/permission/modules/tool/workspace.ts +++ b/ui/src/permission/modules/tool/workspace.ts @@ -5,37 +5,103 @@ import { PermissionConstants as P } from '../../core' const workspace = { // —— 工作空间级 —— + /** + * 工作空间「工具」只读权限 + */ read: () => can(P.TOOL_READ), isShare: () => can(P.TOOL_READ), + /** + * 工作空间「工具」创建权限 + */ create: () => can(P.TOOL_CREATE), + /** + * 工作空间「工具」批量删除权限 + */ batchDelete: () => can(P.TOOL_BATCH_DELETE), + /** + * 工作空间「工具」批量移动权限 + */ batchMove: () => can(P.TOOL_BATCH_MOVE), + /** + * 工作空间「工具」导入权限 + */ import: () => can(P.TOOL_IMPORT), debug: () => false, authToWorkspace: () => false, // —— 工具资源级 —— + /** + * 工作空间「工具」编辑权限 + */ edit: (id: string) => canRes(P.TOOL_EDIT, id), switch: (id: string) => canRes(P.TOOL_EDIT, id), + /** + * 工作空间「工具」复制权限 + */ copy: (id: string) => canRes(P.TOOL_EDIT, id), + /** + * 工作空间「工具」删除权限 + */ delete: (id: string) => canRes(P.TOOL_DELETE, id), + /** + * 工作空间「工具」发布权限 + */ publish: (id: string) => canRes(P.TOOL_PUBLISH, id), + /** + * 工作空间「工具」导出权限 + */ export: (id: string) => canRes(P.TOOL_EXPORT, id), + /** + * 工作空间「工具」资源授权权限 + */ auth: (id: string) => canRes(P.TOOL_RESOURCE_AUTHORIZATION, id), + /** + * 工作空间「工具」查看关联资源权限 + */ relateMap: (id: string) => canRes(P.TOOL_RELATE_RESOURCE_VIEW, id), + /** + * 工作空间「工具」查看执行记录权限 + */ record: (id: string) => canRes(P.TOOL_EXECUTE_RECORD, id), // —— 触发器 —— + /** + * 工作空间「工具」查看触发器权限 + */ triggerRead: (id: string) => canRes(P.TOOL_TRIGGER_READ, id), + /** + * 工作空间「工具」创建触发器权限 + */ triggerCreate: (id: string) => canRes(P.TOOL_TRIGGER_CREATE, id), + /** + * 工作空间「工具」编辑触发器权限 + */ triggerEdit: (id: string) => canRes(P.TOOL_TRIGGER_EDIT, id), + /** + * 工作空间「工具」删除触发器权限 + */ triggerDelete: (id: string) => canRes(P.TOOL_TRIGGER_DELETE, id), // —— 文件夹 —— + /** + * 工作空间「工具」文件夹创建权限 + */ folderCreate: (id: string) => canRes(P.TOOL_FOLDER_CREATE, id), + /** + * 工作空间「工具」文件夹查看权限 + */ folderRead: (id: string) => canRes(P.TOOL_FOLDER_READ, id), + /** + * 工作空间「工具」文件夹编辑权限 + */ folderEdit: (id: string) => canRes(P.TOOL_FOLDER_EDIT, id), + /** + * 工作空间「工具」文件夹删除权限 + */ folderDelete: (id: string) => canRes(P.TOOL_FOLDER_DELETE, id), + /** + * 工作空间「工具」文件夹资源授权权限 + */ folderAuth: (id: string) => canRes(P.TOOL_FOLDER_AUTH, id), folderManage: () => true, } diff --git a/ui/src/views/system/resource-management/tool/index.vue b/ui/src/views/system/resource-management/tool/index.vue index a419990caf6..b1bc587351d 100644 --- a/ui/src/views/system/resource-management/tool/index.vue +++ b/ui/src/views/system/resource-management/tool/index.vue @@ -24,6 +24,7 @@ import { RelatedResourcesToolAction, TriggerToolAction, } from '@/views/tool/tool-card/action-dropdown' +import perm from '@/permission' const { auth } = useStore() const router = useRouter() @@ -177,10 +178,10 @@ onMounted(() => { @@ -265,12 +266,13 @@ onMounted(() => { > @@ -351,8 +353,8 @@ onMounted(() => { @batch-cancel="cancelBatchSelection" >