Skip to content

Commit a4864a4

Browse files
committed
feat: Publish permission in tool application knowledge workflow
1 parent 83ebae3 commit a4864a4

17 files changed

Lines changed: 463 additions & 561 deletions

File tree

apps/application/views/application.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,8 +277,8 @@ class Publish(APIView):
277277
responses=result.DefaultResultSerializer,
278278
tags=[_('Application')] # type: ignore
279279
)
280-
@has_permissions(PermissionConstants.APPLICATION_EDIT.get_workspace_application_permission(),
281-
PermissionConstants.APPLICATION_EDIT.get_workspace_permission_workspace_manage_role(),
280+
@has_permissions(PermissionConstants.APPLICATION_PUBLISH.get_workspace_application_permission(),
281+
PermissionConstants.APPLICATION_PUBLISH.get_workspace_permission_workspace_manage_role(),
282282
ViewPermission([RoleConstants.USER.get_workspace_role()],
283283
[PermissionConstants.APPLICATION.get_workspace_application_permission()],
284284
CompareConstants.AND),

apps/common/constants/permission_constants.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ class Operate(Enum):
157157
USE = "USE"
158158
IMPORT = "READ+IMPORT"
159159
EXPORT = "READ+EXPORT" # 导入导出
160+
PUBLISH = "READ+PUBLISH" # 发布
160161
SYNC = "READ+SYNC" # 同步
161162
GENERATE = "READ+GENERATE" # 生成
162163
ADD_MEMBER = "READ+ADD_MEMBER" # 添加成员
@@ -616,6 +617,11 @@ class PermissionConstants(Enum):
616617
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
617618
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
618619
)
620+
TOOL_PUBLISH = Permission(
621+
group=Group.TOOL, operate=Operate.PUBLISH, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
622+
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
623+
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
624+
)
619625
TOOL_EXECUTE_RECORD = Permission(
620626
group=Group.TOOL, operate=Operate.RECORD, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
621627
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
@@ -767,6 +773,11 @@ class PermissionConstants(Enum):
767773
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
768774
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
769775
)
776+
KNOWLEDGE_WORKFLOW_PUBLISH = Permission(
777+
group=Group.KNOWLEDGE_WORKFLOW, operate=Operate.PUBLISH, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
778+
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
779+
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
780+
)
770781
KNOWLEDGE_DOCUMENT_READ = Permission(
771782
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.READ,
772783
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
@@ -1054,6 +1065,11 @@ class PermissionConstants(Enum):
10541065
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
10551066
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
10561067
)
1068+
APPLICATION_PUBLISH = Permission(group=Group.APPLICATION, operate=Operate.PUBLISH,
1069+
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
1070+
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
1071+
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
1072+
)
10571073
APPLICATION_BATCH_DELETE = Permission(group=Group.APPLICATION, operate=Operate.BATCH_DELETE,
10581074
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
10591075
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
@@ -1388,6 +1404,10 @@ class PermissionConstants(Enum):
13881404
group=Group.SYSTEM_TOOL, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
13891405
parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
13901406
)
1407+
SHARED_TOOL_PUBLISH = Permission(
1408+
group=Group.SYSTEM_TOOL, operate=Operate.PUBLISH, role_list=[RoleConstants.ADMIN],
1409+
parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
1410+
)
13911411
SHARED_TOOL_RELATE_RESOURCE_VIEW = Permission(
13921412
group=Group.SYSTEM_TOOL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
13931413
parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
@@ -1444,6 +1464,10 @@ class PermissionConstants(Enum):
14441464
group=Group.SYSTEM_KNOWLEDGE_WORKFLOW, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
14451465
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
14461466
)
1467+
SHARED_KNOWLEDGE_WORKFLOW_PUBLISH = Permission(
1468+
group=Group.SYSTEM_KNOWLEDGE_WORKFLOW, operate=Operate.PUBLISH, role_list=[RoleConstants.ADMIN],
1469+
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
1470+
)
14471471
SHARED_KNOWLEDGE_DOCUMENT_READ = Permission(
14481472
group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
14491473
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
@@ -1581,6 +1605,10 @@ class PermissionConstants(Enum):
15811605
group=Group.SYSTEM_RES_APPLICATION, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN],
15821606
parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
15831607
)
1608+
RESOURCE_APPLICATION_PUBLISH = Permission(
1609+
group=Group.SYSTEM_RES_APPLICATION, operate=Operate.PUBLISH, role_list=[RoleConstants.ADMIN],
1610+
parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
1611+
)
15841612
RESOURCE_APPLICATION_TRIGGER_READ = Permission(
15851613
group=Group.SYSTEM_RES_APPLICATION, operate=Operate.TRIGGER_READ, role_list=[RoleConstants.ADMIN],
15861614
parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
@@ -1683,6 +1711,10 @@ class PermissionConstants(Enum):
16831711
group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
16841712
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
16851713
)
1714+
RESOURCE_KNOWLEDGE_PUBLISH = Permission(
1715+
group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.PUBLISH, role_list=[RoleConstants.ADMIN],
1716+
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
1717+
)
16861718
RESOURCE_KNOWLEDGE_VECTOR = Permission(
16871719
group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.VECTOR, role_list=[RoleConstants.ADMIN],
16881720
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
@@ -1712,6 +1744,10 @@ class PermissionConstants(Enum):
17121744
group=Group.SYSTEM_RES_KNOWLEDGE_WORKFLOW, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
17131745
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
17141746
)
1747+
RESOURCE_KNOWLEDGE_WORKFLOW_PUBLISH = Permission(
1748+
group=Group.SYSTEM_RES_KNOWLEDGE_WORKFLOW, operate=Operate.PUBLISH, role_list=[RoleConstants.ADMIN],
1749+
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
1750+
)
17151751
RESOURCE_KNOWLEDGE_DOCUMENT_READ = Permission(
17161752
group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
17171753
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
@@ -1824,6 +1860,10 @@ class PermissionConstants(Enum):
18241860
group=Group.SYSTEM_RES_TOOL, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
18251861
parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
18261862
)
1863+
RESOURCE_TOOL_PUBLISH = Permission(
1864+
group=Group.SYSTEM_RES_TOOL, operate=Operate.PUBLISH, role_list=[RoleConstants.ADMIN],
1865+
parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
1866+
)
18271867
RESOURCE_TOOL_AUTH = Permission(
18281868
group=Group.SYSTEM_RES_TOOL, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN],
18291869
parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"

apps/knowledge/views/knowledge_workflow.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ class Publish(APIView):
230230
responses=DefaultResultSerializer,
231231
tags=[_('Knowledge')] # type: ignore
232232
)
233-
@has_permissions(PermissionConstants.KNOWLEDGE_WORKFLOW_EDIT.get_workspace_knowledge_permission(),
234-
PermissionConstants.KNOWLEDGE_WORKFLOW_EDIT.get_workspace_permission_workspace_manage_role(),
233+
@has_permissions(PermissionConstants.KNOWLEDGE_WORKFLOW_PUBLISH.get_workspace_knowledge_permission(),
234+
PermissionConstants.KNOWLEDGE_WORKFLOW_PUBLISH.get_workspace_permission_workspace_manage_role(),
235235
ViewPermission([RoleConstants.USER.get_workspace_role()],
236236
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
237237
CompareConstants.AND),

apps/tools/views/tool_workflow.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ class Publish(APIView):
3434
responses=DefaultResultSerializer,
3535
tags=[_('Tool')] # type: ignore
3636
)
37-
@has_permissions(PermissionConstants.TOOL_EDIT.get_workspace_tool_permission(),
38-
PermissionConstants.TOOL_EDIT.get_workspace_permission_workspace_manage_role(),
37+
@has_permissions(PermissionConstants.TOOL_PUBLISH.get_workspace_tool_permission(),
38+
PermissionConstants.TOOL_PUBLISH.get_workspace_permission_workspace_manage_role(),
3939
ViewPermission([RoleConstants.USER.get_workspace_role()],
4040
[PermissionConstants.TOOL.get_workspace_tool_permission()],
4141
CompareConstants.AND),

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ const systemManage = {
77
batchMove: () => false,
88
folderCreate: () => false,
99
edit: () => hasPermission([RoleConst.ADMIN, PermissionConst.RESOURCE_APPLICATION_EDIT], 'OR'),
10+
publish: () =>
11+
hasPermission([RoleConst.ADMIN, PermissionConst.RESOURCE_APPLICATION_PUBLISH], 'OR'),
1012
folderEdit: () => false,
1113
folderRead: () => false,
1214
folderManage: () => false,

ui/src/permission/application/workspace.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,21 @@ const workspace = {
5050
],
5151
'OR',
5252
),
53+
publish: (source_id: string) =>
54+
hasPermission(
55+
[
56+
new ComplexPermission(
57+
[RoleConst.USER],
58+
[PermissionConst.APPLICATION.getKnowledgeWorkspaceResourcePermission(source_id)],
59+
[],
60+
'AND',
61+
),
62+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
63+
PermissionConst.APPLICATION_PUBLISH.getKnowledgeWorkspaceResourcePermission(source_id),
64+
PermissionConst.APPLICATION_PUBLISH.getWorkspacePermissionWorkspaceManageRole,
65+
],
66+
'OR',
67+
),
5368
folderCreate: (folder_id: string) =>
5469
hasPermission(
5570
[

0 commit comments

Comments
 (0)