From 0704271e693469917dd95ac0b9eaa26ee79086c5 Mon Sep 17 00:00:00 2001 From: zhangzhanwei Date: Wed, 28 Jan 2026 17:11:27 +0800 Subject: [PATCH] feat: Button permission of workspace manager --- apps/common/constants/permission_constants.py | 1 + ui/src/utils/permission/data.ts | 1 + .../views/trigger/component/TriggerDrawer.vue | 27 ++++++- ui/src/views/trigger/index.vue | 73 +++++++++++++++++-- 4 files changed, 94 insertions(+), 8 deletions(-) diff --git a/apps/common/constants/permission_constants.py b/apps/common/constants/permission_constants.py index fcf58467784..46b1091e44d 100644 --- a/apps/common/constants/permission_constants.py +++ b/apps/common/constants/permission_constants.py @@ -375,6 +375,7 @@ def get_workspace_role(self): Operate.TRIGGER_CREATE.value: _('Create Trigger'), Operate.TRIGGER_EDIT.value: _('Edit Trigger'), Operate.TRIGGER_DELETE.value: _('Delete Trigger'), + Operate.RECORD.value: _('Execute record'), Group.APPLICATION_OVERVIEW.value: _('Overview'), Group.APPLICATION_ACCESS.value: _('Application Access'), diff --git a/ui/src/utils/permission/data.ts b/ui/src/utils/permission/data.ts index 7a8a0604413..4a8b0681b76 100644 --- a/ui/src/utils/permission/data.ts +++ b/ui/src/utils/permission/data.ts @@ -116,6 +116,7 @@ const PermissionConst = { TRIGGER_CREATE: new Permission('TRIGGER:READ+CREATE'), TRIGGER_EDIT: new Permission('TRIGGER:READ+EDIT'), TRIGGER_DELETE: new Permission('TRIGGER:READ+DELETE'), + TRIGGER_RECORD: new Permission('TRIGGER:READ+RECORD'), KNOWLEDGE_READ: new Permission('KNOWLEDGE:READ'), KNOWLEDGE_CREATE: new Permission('KNOWLEDGE:READ+CREATE'), diff --git a/ui/src/views/trigger/component/TriggerDrawer.vue b/ui/src/views/trigger/component/TriggerDrawer.vue index 6487b198e7f..c22c8da93a3 100644 --- a/ui/src/views/trigger/component/TriggerDrawer.vue +++ b/ui/src/views/trigger/component/TriggerDrawer.vue @@ -459,7 +459,7 @@ @@ -480,6 +480,8 @@ import { resetUrl } from '@/utils/common.ts' import { t } from '@/locales' import { type FormInstance } from 'element-plus' import Result from '@/request/Result' +import { hasPermission } from '@/utils/permission' +import { PermissionConst, RoleConst } from '@/utils/permission/data' const emit = defineEmits(['refresh']) const props = withDefaults( @@ -501,6 +503,29 @@ const collapseData = reactive({ }) const showTast = ref('') +const submitPermission = computed(() => { + return is_edit.value ? triggerPermissionMap.edit() : triggerPermissionMap.create() +}) + +const triggerPermissionMap = { + edit: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.TRIGGER_EDIT.getWorkspacePermissionWorkspaceManageRole, + ], + 'OR', + ), + create: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.TRIGGER_CREATE.getWorkspacePermissionWorkspaceManageRole, + ], + 'OR', + ), +} + const triggerFormRef = ref() const copy = () => { copyClick(event_url.value) diff --git a/ui/src/views/trigger/index.vue b/ui/src/views/trigger/index.vue index e280658ea8b..42da3187cf9 100644 --- a/ui/src/views/trigger/index.vue +++ b/ui/src/views/trigger/index.vue @@ -6,16 +6,28 @@
- {{ $t('common.create') }} - {{ $t('common.status.enable') }} - {{ $t('common.status.disable') }} - {{ $t('common.delete') }}
@@ -243,7 +255,7 @@