Skip to content

Commit 819da65

Browse files
committed
fix: Knowledge workflow permission
1 parent 94eb695 commit 819da65

File tree

5 files changed

+53
-22
lines changed

5 files changed

+53
-22
lines changed

apps/application/flow/step_node/data_source_web_node/impl/base_data_source_web_node.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def execute(self, **kwargs) -> NodeResult:
6565
try:
6666
ForkManage(source_url, selector.split(" ") if selector is not None else []).fork(3, set(), collect_handler)
6767

68-
return NodeResult({'document_list': document_list},
68+
return NodeResult({'document_list': document_list,'source_url': source_url, 'selector': selector},
6969
self.workflow_manage.params.get('knowledge_base') or {})
7070

7171
except Exception as e:

apps/application/flow/step_node/knowledge_write_node/impl/base_knowledge_write_node.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def execute(self, documents, **kwargs) -> NodeResult:
208208
"paragraphs": [{
209209
"title": p.get("title"),
210210
"content": p.get("content"),
211-
} for p in document.get("paragraphs")[0:4]]
211+
} for p in document.get("paragraphs")[0:5]]
212212
} for document in documents]
213213

214214
return NodeResult({'write_content': write_content_list}, {})

apps/knowledge/views/knowledge_workflow.py

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,34 @@
2020
class KnowledgeDatasourceFormListView(APIView):
2121
authentication_classes = [TokenAuth]
2222

23+
@has_permissions(
24+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
25+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
26+
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
27+
ViewPermission(
28+
[RoleConstants.USER.get_workspace_role()],
29+
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
30+
CompareConstants.AND
31+
),
32+
)
2333
def post(self, request: Request, workspace_id: str, knowledge_id: str, type: str, id: str):
2434
return result.success(KnowledgeWorkflowSerializer.Datasource(
2535
data={'type': type, 'id': id, 'params': request.data, 'function_name': 'get_form_list'}).action())
2636

2737

2838
class KnowledgeDatasourceView(APIView):
39+
authentication_classes = [TokenAuth]
40+
41+
@has_permissions(
42+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
43+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
44+
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
45+
ViewPermission(
46+
[RoleConstants.USER.get_workspace_role()],
47+
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
48+
CompareConstants.AND
49+
),
50+
)
2951
def post(self, request: Request, workspace_id: str, knowledge_id: str, type: str, id: str, function_name: str):
3052
return result.success(KnowledgeWorkflowSerializer.Datasource(
3153
data={'type': type, 'id': id, 'params': request.data, 'function_name': function_name}).action())
@@ -45,8 +67,8 @@ class KnowledgeWorkflowUploadDocumentView(APIView):
4567
tags=[_('Knowledge Base')] # type: ignore
4668
)
4769
@has_permissions(
48-
PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission(),
49-
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission_workspace_manage_role(),
70+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
71+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
5072
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
5173
ViewPermission(
5274
[RoleConstants.USER.get_workspace_role()],
@@ -99,8 +121,8 @@ class Operate(APIView):
99121
tags=[_('Knowledge Base')] # type: ignore
100122
)
101123
@has_permissions(
102-
PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission(),
103-
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission_workspace_manage_role(),
124+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
125+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
104126
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
105127
ViewPermission(
106128
[RoleConstants.USER.get_workspace_role()],
@@ -204,8 +226,8 @@ def put(self, request: Request, workspace_id: str, knowledge_id: str):
204226
tags=[_('Knowledge Base')] # type: ignore
205227
)
206228
@has_permissions(
207-
PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission(),
208-
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission_workspace_manage_role(),
229+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
230+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
209231
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
210232
ViewPermission(
211233
[RoleConstants.USER.get_workspace_role()],
@@ -232,8 +254,8 @@ class KnowledgeWorkflowVersionView(APIView):
232254
tags=[_('Knowledge Base')] # type: ignore
233255
)
234256
@has_permissions(
235-
PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission(),
236-
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission_workspace_manage_role(),
257+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
258+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
237259
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
238260
ViewPermission(
239261
[RoleConstants.USER.get_workspace_role()],
@@ -260,8 +282,8 @@ class McpServers(APIView):
260282
responses=SpeechToTextAPI.get_response(),
261283
tags=[_('Knowledge Base')] # type: ignore
262284
)
263-
@has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_application_permission(),
264-
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission_workspace_manage_role(),
285+
@has_permissions(PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_application_permission(),
286+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
265287
ViewPermission([RoleConstants.USER.get_workspace_role()],
266288
[PermissionConstants.KNOWLEDGE.get_workspace_application_permission()],
267289
CompareConstants.AND),

apps/knowledge/views/knowledge_workflow_version.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ class KnowledgeWorkflowVersionView(APIView):
4444
responses=KnowledgeVersionListAPI.get_response(),
4545
tags=[_('Knowledge/Version')] # type: ignore
4646
)
47-
@has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission(),
48-
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission_workspace_manage_role(),
47+
@has_permissions(PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
48+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
4949
ViewPermission([RoleConstants.USER.get_workspace_role()],
5050
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
5151
CompareConstants.AND),
@@ -68,8 +68,8 @@ class Page(APIView):
6868
responses=KnowledgeVersionPageAPI.get_response(),
6969
tags=[_('Knowledge/Version')] # type: ignore
7070
)
71-
@has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission(),
72-
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission_workspace_manage_role(),
71+
@has_permissions(PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
72+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
7373
ViewPermission([RoleConstants.USER.get_workspace_role()],
7474
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
7575
CompareConstants.AND),
@@ -93,8 +93,8 @@ class Operate(APIView):
9393
responses=KnowledgeVersionOperateAPI.get_response(),
9494
tags=[_('Knowledge/Version')] # type: ignore
9595
)
96-
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission(),
97-
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission_workspace_manage_role(),
96+
@has_permissions(PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_knowledge_permission(),
97+
PermissionConstants.KNOWLEDGE_WORKFLOW_READ.get_workspace_permission_workspace_manage_role(),
9898
ViewPermission([RoleConstants.USER.get_workspace_role()],
9999
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
100100
CompareConstants.AND),
@@ -115,8 +115,8 @@ def get(self, request: Request, workspace_id: str, knowledge_id: str, knowledge_
115115
responses=KnowledgeVersionOperateAPI.get_response(),
116116
tags=[_('Knowledge/Version')] # type: ignore
117117
)
118-
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission(),
119-
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission_workspace_manage_role(),
118+
@has_permissions(PermissionConstants.KNOWLEDGE_WORKFLOW_EDIT.get_workspace_knowledge_permission(),
119+
PermissionConstants.KNOWLEDGE_WORKFLOW_EDIT.get_workspace_permission_workspace_manage_role(),
120120
ViewPermission([RoleConstants.USER.get_workspace_role()],
121121
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
122122
CompareConstants.AND),

ui/src/views/knowledge-workflow/component/PublishHistory.vue

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@
4242
</el-button>
4343
<template #dropdown>
4444
<el-dropdown-menu>
45-
<el-dropdown-item @click.stop="openEditVersion(row)">
45+
<el-dropdown-item
46+
v-if="permissionPrecise.workflow_edit(id)"
47+
@click.stop="openEditVersion(row)"
48+
>
4649
<AppIcon iconName="app-edit" class="color-secondary"></AppIcon>
4750
{{ $t('common.edit') }}
4851
</el-dropdown-item>
@@ -75,9 +78,11 @@ import { datetimeFormat } from '@/utils/time'
7578
import { MsgSuccess, MsgError } from '@/utils/message'
7679
import { t } from '@/locales'
7780
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
81+
import permissionMap from '@/permission'
82+
7883
const route = useRoute()
7984
const {
80-
params: { id },
85+
params: { id, folderId },
8186
} = route as any
8287
const apiType = computed(() => {
8388
if (route.path.includes('shared')) {
@@ -89,6 +94,10 @@ const apiType = computed(() => {
8994
}
9095
})
9196
97+
const permissionPrecise = computed(() => {
98+
return permissionMap['knowledge'][apiType.value]
99+
})
100+
92101
const emit = defineEmits(['click', 'refreshVersion'])
93102
const loading = ref(false)
94103
const LogData = ref<any[]>([])

0 commit comments

Comments
 (0)