Skip to content

Commit 9d9668b

Browse files
committed
fix: Tool record permission
1 parent 965f59a commit 9d9668b

File tree

7 files changed

+62
-12
lines changed

7 files changed

+62
-12
lines changed

apps/common/constants/permission_constants.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -603,11 +603,16 @@ class PermissionConstants(Enum):
603603
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
604604
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
605605
)
606+
TOOL_EXECUTE_RECORD = Permission(
607+
group=Group.TOOL, operate=Operate.RECORD, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
608+
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
609+
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
610+
)
606611
# source point trigger
607612
TOOL_TRIGGER_READ = Permission(
608613
group=Group.TOOL, operate=Operate.TRIGGER_READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
609614
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
610-
resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
615+
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
611616
)
612617
TOOL_TRIGGER_CREATE = Permission(
613618
group=Group.TOOL, operate=Operate.TRIGGER_CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
@@ -1035,7 +1040,7 @@ class PermissionConstants(Enum):
10351040
APPLICATION_TRIGGER_READ = Permission(
10361041
group=Group.APPLICATION, operate=Operate.TRIGGER_READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
10371042
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
1038-
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW]
1043+
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
10391044
)
10401045
APPLICATION_TRIGGER_CREATE = Permission(
10411046
group=Group.APPLICATION, operate=Operate.TRIGGER_CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
@@ -1349,6 +1354,10 @@ class PermissionConstants(Enum):
13491354
group=Group.SYSTEM_TOOL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
13501355
parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
13511356
)
1357+
SHARED_TOOL_EXECUTE_RECORD = Permission(
1358+
group=Group.SYSTEM_TOOL, operate=Operate.RECORD, role_list=[RoleConstants.ADMIN],
1359+
parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
1360+
)
13521361
SHARED_KNOWLEDGE_READ = Permission(
13531362
group=Group.SYSTEM_KNOWLEDGE, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
13541363
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
@@ -1781,6 +1790,10 @@ class PermissionConstants(Enum):
17811790
group=Group.SYSTEM_RES_TOOL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
17821791
parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
17831792
)
1793+
RESOURCE_TOOL_EXECUTE_RECORD = Permission(
1794+
group=Group.SYSTEM_RES_TOOL, operate=Operate.RECORD, role_list=[RoleConstants.ADMIN],
1795+
parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
1796+
)
17841797
RESOURCE_TOOL_TRIGGER_READ = Permission(
17851798
group=Group.SYSTEM_RES_TOOL, operate=Operate.TRIGGER_READ, role_list=[RoleConstants.ADMIN],
17861799
parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"

apps/tools/views/tool.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -527,8 +527,8 @@ class PageToolRecord(APIView):
527527
tags=[_("Tool")] # type: ignore
528528
)
529529
@has_permissions(
530-
PermissionConstants.TOOL_READ.get_workspace_tool_permission(),
531-
PermissionConstants.TOOL_READ.get_workspace_permission_workspace_manage_role(),
530+
PermissionConstants.TOOL_EXECUTE_RECORD.get_workspace_tool_permission(),
531+
PermissionConstants.TOOL_EXECUTE_RECORD.get_workspace_permission_workspace_manage_role(),
532532
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
533533
ViewPermission([RoleConstants.USER.get_workspace_role()],
534534
[PermissionConstants.TOOL.get_workspace_tool_permission()],
@@ -556,8 +556,8 @@ class ToolRecord(APIView):
556556
tags=[_("Tool")] # type: ignore
557557
)
558558
@has_permissions(
559-
PermissionConstants.TOOL_READ.get_workspace_tool_permission(),
560-
PermissionConstants.TOOL_READ.get_workspace_permission_workspace_manage_role(),
559+
PermissionConstants.TOOL_EXECUTE_RECORD.get_workspace_tool_permission(),
560+
PermissionConstants.TOOL_EXECUTE_RECORD.get_workspace_permission_workspace_manage_role(),
561561
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
562562
ViewPermission([RoleConstants.USER.get_workspace_role()],
563563
[PermissionConstants.TOOL.get_workspace_tool_permission()],

ui/src/permission/tool/system-manage.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,14 @@ const systemManage = {
114114
],
115115
'OR'
116116
),
117-
117+
record: () =>
118+
hasPermission(
119+
[
120+
RoleConst.ADMIN,
121+
PermissionConst.RESOURCE_TOOL_EXECUTE_RECORD
122+
],
123+
'OR'
124+
),
118125
folderRead: () => false,
119126
folderManage: () => false,
120127
folderCreate: () => false,

ui/src/permission/tool/system-share.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ const share = {
3737
],
3838
'OR',
3939
),
40+
trigger_read: ()=> false,
41+
trigger_create: ()=> false,
42+
trigger_edit: ()=> false,
43+
trigger_delete: ()=> false,
4044
switch: () =>
4145
hasPermission(
4246
[
@@ -87,7 +91,14 @@ const share = {
8791
],
8892
'OR',
8993
),
90-
94+
record: () =>
95+
hasPermission(
96+
[
97+
RoleConst.ADMIN,
98+
PermissionConst.SHARED_TOOL_EXECUTE_RECORD,
99+
],
100+
'OR',
101+
),
91102
folderRead: () => false,
92103
folderManage: () => false,
93104
folderCreate: () => false,

ui/src/permission/tool/workspace.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,16 @@ const workspace = {
102102
],
103103
'OR',
104104
),
105+
record: (source_id:string) =>
106+
hasPermission(
107+
[
108+
new ComplexPermission([RoleConst.USER],[PermissionConst.TOOL.getToolWorkspaceResourcePermission(source_id)],[],'AND'),
109+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
110+
PermissionConst.TOOL_EXECUTE_RECORD.getToolWorkspaceResourcePermission(source_id),
111+
PermissionConst.TOOL_EXECUTE_RECORD.getWorkspacePermissionWorkspaceManageRole
112+
],
113+
'OR',
114+
),
105115
trigger_read: (source_id:string) =>
106116
hasPermission(
107117
[

ui/src/utils/permission/data.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ const PermissionConst = {
205205
SHARED_TOOL_IMPORT: new Permission('SYSTEM_TOOL:READ+IMPORT'),
206206
SHARED_TOOL_EXPORT: new Permission('SYSTEM_TOOL:READ+EXPORT'),
207207
SHARED_TOOL_RELATE_RESOURCE_VIEW: new Permission('SYSTEM_TOOL:READ+RELATE_VIEW'),
208+
SHARED_TOOL_EXECUTE_RECORD: new Permission('SYSTEM_TOOL:READ+RECORD'),
208209

209210
SHARED_MODEL_READ: new Permission('SYSTEM_MODEL:READ'),
210211
SHARED_MODEL_CREATE: new Permission('SYSTEM_MODEL:READ+CREATE'),
@@ -263,6 +264,7 @@ const PermissionConst = {
263264
TOOL_IMPORT: new Permission('TOOL:READ+IMPORT'),
264265
TOOL_EXPORT: new Permission('TOOL:READ+EXPORT'),
265266
TOOL_RELATE_RESOURCE_VIEW: new Permission('TOOL:READ+RELATE_VIEW'),
267+
TOOL_EXECUTE_RECORD: new Permission('TOOL:READ+RECORD'),
266268
TOOL_TRIGGER_READ: new Permission('TOOL:READ+TRIGGER_READ'),
267269
TOOL_TRIGGER_CREATE: new Permission('TOOL:READ+TRIGGER_CREATE'),
268270
TOOL_TRIGGER_EDIT: new Permission('TOOL:READ+TRIGGER_EDIT'),
@@ -274,6 +276,7 @@ const PermissionConst = {
274276
RESOURCE_TOOL_DELETE: new Permission('SYSTEM_RESOURCE_TOOL:READ+DELETE'),
275277
RESOURCE_TOOL_IMPORT: new Permission('SYSTEM_RESOURCE_TOOL:READ+IMPORT'),
276278
RESOURCE_TOOL_EXPORT: new Permission('SYSTEM_RESOURCE_TOOL:READ+EXPORT'),
279+
RESOURCE_TOOL_EXECUTE_RECORD: new Permission('SYSTEM_RESOURCE_TOOL:READ+RECORD'),
277280
RESOURCE_TOOL_TRIGGER_READ: new Permission('SYSTEM_RESOURCE_TOOL:READ+TRIGGER_READ'),
278281
RESOURCE_TOOL_TRIGGER_CREATE: new Permission('SYSTEM_RESOURCE_TOOL:READ+TRIGGER_CREATE'),
279282
RESOURCE_TOOL_TRIGGER_EDIT: new Permission('SYSTEM_RESOURCE_TOOL:READ+TRIGGER_EDIT'),

ui/src/views/tool/component/ToolListContainer.vue

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,11 @@
295295

296296
<el-dropdown-item
297297
@click.stop="openTriggerDrawer(item)"
298-
v-if="apiType === 'workspace' && item.tool_type === 'CUSTOM'"
298+
v-if="
299+
['workspace', 'systemManage'].includes(apiType) &&
300+
item.tool_type === 'CUSTOM' &&
301+
permissionPrecise.trigger_read(item.id)
302+
"
299303
>
300304
<AppIcon iconName="app-trigger" class="color-secondary"></AppIcon>
301305
{{ $t('views.trigger.title') }}
@@ -314,7 +318,7 @@
314318
<el-dropdown-item
315319
text
316320
@click.stop="openToolRecordDrawer(item)"
317-
v-if="item.tool_type === 'CUSTOM'"
321+
v-if="item.tool_type === 'CUSTOM' && permissionPrecise.record(item.id)"
318322
>
319323
<AppIcon
320324
iconName="app-schedule-report"
@@ -397,7 +401,7 @@
397401
ref="resourceTriggerDrawerRef"
398402
:source="SourceTypeEnum.TOOL"
399403
></ResourceTriggerDrawer>
400-
<ToolRecordDrawer ref="toolRecordDrawerRef"/>
404+
<ToolRecordDrawer ref="toolRecordDrawerRef" />
401405
</template>
402406

403407
<script lang="ts" setup>
@@ -429,7 +433,7 @@ import ToolStoreDescDrawer from '@/views/tool/component/ToolStoreDescDrawer.vue'
429433
430434
import bus from '@/bus'
431435
import ResourceMappingDrawer from '@/components/resource_mapping/index.vue'
432-
import ToolRecordDrawer from "@/views/tool/execution-record/TriggerRecordDrawer.vue";
436+
import ToolRecordDrawer from '@/views/tool/execution-record/TriggerRecordDrawer.vue'
433437
434438
const route = useRoute()
435439
@@ -467,6 +471,8 @@ const MoreFieldPermission = (id: any) => {
467471
permissionPrecise.value.delete(id) ||
468472
permissionPrecise.value.auth(id) ||
469473
permissionPrecise.value.relate_map(id) ||
474+
permissionPrecise.value.trigger_read(id) ||
475+
permissionPrecise.value.record(id) ||
470476
isSystemShare.value
471477
)
472478
}

0 commit comments

Comments
 (0)