From 813509dab26d6a3b41e1611ee72961c03f9288b6 Mon Sep 17 00:00:00 2001 From: panxinying Date: Mon, 9 Nov 2026 15:20:09 +0800 Subject: [PATCH] fix: knowledge problem permission --- .../problem/components/ProblemDetailDrawer.vue | 16 +++++++++++++++- ui/src/views/knowledge-detail/problem/index.vue | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ui/src/views/knowledge-detail/problem/components/ProblemDetailDrawer.vue b/ui/src/views/knowledge-detail/problem/components/ProblemDetailDrawer.vue index e3b4f6e46e2..1daca97ac36 100644 --- a/ui/src/views/knowledge-detail/problem/components/ProblemDetailDrawer.vue +++ b/ui/src/views/knowledge-detail/problem/components/ProblemDetailDrawer.vue @@ -10,6 +10,20 @@ import { getFileIconUrl } from '@/utils/icon' import { getFileUrl } from '@/utils/common' import { DOCUMENT_RESOURCE_TYPE } from '@/api/enums' import { KNOWLEDGE_TYPE_KEY, KNOWLEDGE_TYPE_MAP } from '@/constants/knowledge' +import { isWorkspaceSharedResource,isSystemResource, isSystemSharedResource } from '@/utils/resource-context' +import { perm } from '@/permission' + +/** + * 知识库「问题」权限判断 + */ +type KnowledgeProblemPermissionMethod = 'problemRelate' + +function knowledgeProblemPermission(method: KnowledgeProblemPermissionMethod): boolean { + if (isSystemResource()) return Boolean(perm.knowledge.system[method]()) + if (isSystemSharedResource()) return Boolean(perm.knowledge.share[method]()) + if (isWorkspaceSharedResource()) return false // 共享知识库在工作空间侧只读 + return Boolean(perm.knowledge.workspace[method](knowledgeId.value)) +} defineOptions({ name: 'ProblemDetailDrawer' }) const problem = defineModel({ required: true }) @@ -161,7 +175,7 @@ defineExpose({ refresh: handleLoadParagraphs })