Skip to content

Commit 0704271

Browse files
committed
feat: Button permission of workspace manager
1 parent 69ba177 commit 0704271

File tree

4 files changed

+94
-8
lines changed

4 files changed

+94
-8
lines changed

apps/common/constants/permission_constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ def get_workspace_role(self):
375375
Operate.TRIGGER_CREATE.value: _('Create Trigger'),
376376
Operate.TRIGGER_EDIT.value: _('Edit Trigger'),
377377
Operate.TRIGGER_DELETE.value: _('Delete Trigger'),
378+
Operate.RECORD.value: _('Execute record'),
378379

379380
Group.APPLICATION_OVERVIEW.value: _('Overview'),
380381
Group.APPLICATION_ACCESS.value: _('Application Access'),

ui/src/utils/permission/data.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ const PermissionConst = {
116116
TRIGGER_CREATE: new Permission('TRIGGER:READ+CREATE'),
117117
TRIGGER_EDIT: new Permission('TRIGGER:READ+EDIT'),
118118
TRIGGER_DELETE: new Permission('TRIGGER:READ+DELETE'),
119+
TRIGGER_RECORD: new Permission('TRIGGER:READ+RECORD'),
119120

120121
KNOWLEDGE_READ: new Permission('KNOWLEDGE:READ'),
121122
KNOWLEDGE_CREATE: new Permission('KNOWLEDGE:READ+CREATE'),

ui/src/views/trigger/component/TriggerDrawer.vue

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@
459459
<ToolDialog @refresh="toolRefresh" ref="toolDialogRef"></ToolDialog>
460460
<template #footer>
461461
<el-button @click="close">{{ $t('common.cancel') }}</el-button>
462-
<el-button type="primary" @click="submit">{{
462+
<el-button v-if="submitPermission" type="primary" @click="submit">{{
463463
is_edit ? $t('common.save') : $t('common.create')
464464
}}</el-button>
465465
</template>
@@ -480,6 +480,8 @@ import { resetUrl } from '@/utils/common.ts'
480480
import { t } from '@/locales'
481481
import { type FormInstance } from 'element-plus'
482482
import Result from '@/request/Result'
483+
import { hasPermission } from '@/utils/permission'
484+
import { PermissionConst, RoleConst } from '@/utils/permission/data'
483485
484486
const emit = defineEmits(['refresh'])
485487
const props = withDefaults(
@@ -501,6 +503,29 @@ const collapseData = reactive({
501503
})
502504
const showTast = ref<string>('')
503505
506+
const submitPermission = computed(() => {
507+
return is_edit.value ? triggerPermissionMap.edit() : triggerPermissionMap.create()
508+
})
509+
510+
const triggerPermissionMap = {
511+
edit: () =>
512+
hasPermission(
513+
[
514+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
515+
PermissionConst.TRIGGER_EDIT.getWorkspacePermissionWorkspaceManageRole,
516+
],
517+
'OR',
518+
),
519+
create: () =>
520+
hasPermission(
521+
[
522+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
523+
PermissionConst.TRIGGER_CREATE.getWorkspacePermissionWorkspaceManageRole,
524+
],
525+
'OR',
526+
),
527+
}
528+
504529
const triggerFormRef = ref<FormInstance>()
505530
const copy = () => {
506531
copyClick(event_url.value)

ui/src/views/trigger/index.vue

Lines changed: 66 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,28 @@
66
<div class="p-24">
77
<div class="flex-between">
88
<div>
9-
<el-button type="primary" @click="openCreateTriggerDrawer"
9+
<el-button
10+
v-if="triggerPermissionMap.create()"
11+
type="primary"
12+
@click="openCreateTriggerDrawer"
1013
>{{ $t('common.create') }}
1114
</el-button>
12-
<el-button @click="batchChangeState(true)" :disabled="multipleSelection.length === 0"
15+
<el-button
16+
v-if="triggerPermissionMap.edit()"
17+
@click="batchChangeState(true)"
18+
:disabled="multipleSelection.length === 0"
1319
>{{ $t('common.status.enable') }}
1420
</el-button>
15-
<el-button @click="batchChangeState(false)" :disabled="multipleSelection.length === 0"
21+
<el-button
22+
v-if="triggerPermissionMap.edit()"
23+
@click="batchChangeState(false)"
24+
:disabled="multipleSelection.length === 0"
1625
>{{ $t('common.status.disable') }}
1726
</el-button>
18-
<el-button @click="batchDelete" :disabled="multipleSelection.length === 0"
27+
<el-button
28+
v-if="triggerPermissionMap.delete()"
29+
@click="batchDelete"
30+
:disabled="multipleSelection.length === 0"
1931
>{{ $t('common.delete') }}
2032
</el-button>
2133
</div>
@@ -243,7 +255,7 @@
243255
</el-table-column>
244256
<el-table-column align="left" width="160" fixed="right" :label="$t('common.operation')">
245257
<template #default="{ row }">
246-
<span @click.stop>
258+
<span v-if="triggerPermissionMap.edit()" @click.stop>
247259
<el-switch
248260
:before-change="() => changeState(row)"
249261
:loading="loading"
@@ -259,15 +271,25 @@
259271
</el-button>
260272
</span>
261273
</el-tooltip>
262-
<el-tooltip effect="dark" :content="$t('workflow.ExecutionRecord')" placement="top">
274+
<el-tooltip
275+
v-if="triggerPermissionMap.record()"
276+
effect="dark"
277+
:content="$t('workflow.ExecutionRecord')"
278+
placement="top"
279+
>
263280
<span class="mr-4">
264281
<el-button type="primary" text @click="openExecutionRecordDrawer(row)">
265282
<AppIcon iconName="app-schedule-report"></AppIcon>
266283
</el-button>
267284
</span>
268285
</el-tooltip>
269286

270-
<el-tooltip effect="dark" :content="$t('common.delete')" placement="top">
287+
<el-tooltip
288+
v-if="triggerPermissionMap.delete()"
289+
effect="dark"
290+
:content="$t('common.delete')"
291+
placement="top"
292+
>
271293
<span class="mr-4">
272294
<el-button type="primary" text @click="deleteTrigger(row)">
273295
<AppIcon iconName="app-delete"></AppIcon>
@@ -301,6 +323,8 @@ import { resetUrl } from '@/utils/common'
301323
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
302324
import type { TriggerData } from '@/api/type/trigger'
303325
import TriggerDrawer from '@/views/trigger/component/TriggerDrawer.vue'
326+
import { hasPermission } from '@/utils/permission'
327+
import { PermissionConst, RoleConst } from '@/utils/permission/data'
304328
305329
const { user } = useStore()
306330
@@ -407,6 +431,41 @@ function batchDelete() {
407431
})
408432
}
409433
434+
const triggerPermissionMap = {
435+
edit: () =>
436+
hasPermission(
437+
[
438+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
439+
PermissionConst.TRIGGER_EDIT.getWorkspacePermissionWorkspaceManageRole,
440+
],
441+
'OR',
442+
),
443+
create: () =>
444+
hasPermission(
445+
[
446+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
447+
PermissionConst.TRIGGER_CREATE.getWorkspacePermissionWorkspaceManageRole,
448+
],
449+
'OR',
450+
),
451+
delete: () =>
452+
hasPermission(
453+
[
454+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
455+
PermissionConst.TRIGGER_DELETE.getWorkspacePermissionWorkspaceManageRole,
456+
],
457+
'OR',
458+
),
459+
record: () =>
460+
hasPermission(
461+
[
462+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
463+
PermissionConst.TRIGGER_RECORD.getWorkspacePermissionWorkspaceManageRole,
464+
],
465+
'OR',
466+
),
467+
}
468+
410469
async function changeState(row: any) {
411470
const obj = {
412471
is_active: !row.is_active,

0 commit comments

Comments
 (0)