feat: Knowledge problem permission

This commit is contained in:
zhangzhanwei 2025-06-24 15:40:18 +08:00 committed by zhanweizhang7
parent c253e8b696
commit 58a44b315e
3 changed files with 43 additions and 23 deletions

View File

@ -21,6 +21,9 @@ const share = {
doc_delete: () => false, doc_delete: () => false,
doc_export: () => false, doc_export: () => false,
problem_create: () => false,
problem_relate: () => false,
problem_delete: () => false,
} }
export default share export default share

View File

@ -173,6 +173,36 @@ const workspace = {
], ],
'OR', 'OR',
), ),
problem_create: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
problem_relate: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
problem_delete: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
} }
export default workspace export default workspace

View File

@ -7,24 +7,18 @@
<div class="flex-between"> <div class="flex-between">
<div> <div>
<el-button type="primary" @click="createProblem" <el-button type="primary" @click="createProblem"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-if="permissionPrecise.problem_create(id)"
RoleConst.ADMIN, >
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(id),]">
{{ $t('views.problem.createProblem') }} {{ $t('views.problem.createProblem') }}
</el-button> </el-button>
<el-button @click="relateProblem()" :disabled="multipleSelection.length === 0" <el-button @click="relateProblem()" :disabled="multipleSelection.length === 0"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-if="permissionPrecise.problem_relate(id)"
RoleConst.ADMIN, >
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getKnowledgeWorkspaceResourcePermission(id)]">
{{ $t('views.problem.relateParagraph.title') }} {{ $t('views.problem.relateParagraph.title') }}
</el-button> </el-button>
<el-button @click="deleteMulDocument" :disabled="multipleSelection.length === 0" <el-button @click="deleteMulDocument" :disabled="multipleSelection.length === 0"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-if="permissionPrecise.problem_delete(id)"
RoleConst.ADMIN, >
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getKnowledgeWorkspaceResourcePermission(id)]">
{{ $t('views.problem.setting.batchDelete') }} {{ $t('views.problem.setting.batchDelete') }}
</el-button> </el-button>
</div> </div>
@ -43,8 +37,7 @@
class="mt-16" class="mt-16"
:data="problemData" :data="problemData"
:pagination-config="paginationConfig" :pagination-config="paginationConfig"
:quick-create="permissionPrecise.doc_create(id)"" :quick-create="permissionPrecise.doc_create(id)"
:quickCreateName="$t('views.problem.quickCreateName')" :quickCreateName="$t('views.problem.quickCreateName')"
:quickCreatePlaceholder="$t('views.problem.quickCreateProblem')" :quickCreatePlaceholder="$t('views.problem.quickCreateProblem')"
:quickCreateMaxlength="256" :quickCreateMaxlength="256"
@ -114,10 +107,7 @@
placement="top" placement="top"
> >
<el-button type="primary" text @click.stop="relateProblem(row)" <el-button type="primary" text @click.stop="relateProblem(row)"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-if="permissionPrecise.problem_relate(id)" >
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getKnowledgeWorkspaceResourcePermission(id)]">
<el-icon><Connection /></el-icon> <el-icon><Connection /></el-icon>
</el-button> </el-button>
</el-tooltip> </el-tooltip>
@ -125,10 +115,7 @@
<span> <span>
<el-tooltip effect="dark" :content="$t('common.delete')" placement="top"> <el-tooltip effect="dark" :content="$t('common.delete')" placement="top">
<el-button type="primary" text @click.stop="deleteProblem(row)" <el-button type="primary" text @click.stop="deleteProblem(row)"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-if="permissionPrecise.problem_delete(id)" >
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getKnowledgeWorkspaceResourcePermission(id)]">
<el-icon><Delete /></el-icon> <el-icon><Delete /></el-icon>
</el-button> </el-button>
</el-tooltip> </el-tooltip>