feat: Share tool permission

This commit is contained in:
zhangzhanwei 2025-06-24 17:16:25 +08:00 committed by zhanweizhang7
parent a85cf51f42
commit 85ebd22c21
5 changed files with 68 additions and 25 deletions

View File

@ -3,12 +3,61 @@ import { ComplexPermission } from '@/utils/permission/type'
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
const share = {
is_share: () => false,
delete: () => false,
create: () => false,
switch: () => false,
edit: () => false,
copy: () => false,
export: () => false,
debug: () => false,
create: () =>
hasPermission(
[
RoleConst.ADMIN,
PermissionConst.SHARED_TOOL_CREATE,
],
'OR',
),
delete: () =>
hasPermission(
[
RoleConst.ADMIN,
PermissionConst.SHARED_TOOL_DELETE,
],
'OR',
),
switch: () =>
hasPermission(
[
RoleConst.ADMIN,
PermissionConst.SHARED_TOOL_EDIT,
],
'OR',
),
edit: () =>
hasPermission(
[
RoleConst.ADMIN,
PermissionConst.SHARED_TOOL_EDIT,
],
'OR',
),
copy: () =>
hasPermission(
[
RoleConst.ADMIN,
PermissionConst.SHARED_TOOL_CREATE,
],
'OR',
),
export: () =>
hasPermission(
[
RoleConst.ADMIN,
PermissionConst.SHARED_TOOL_EXPORT,
],
'OR',
),
debug: () =>
hasPermission(
[
RoleConst.ADMIN,
PermissionConst.SHARED_TOOL_DEBUG,
],
'OR',
),
}
export default share

View File

@ -4,14 +4,9 @@ import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/dat
const workspace = {
is_share: () =>
hasPermission(
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.SHARED_TOOL_READ],
[EditionConst.IS_EE],
'OR',
),
'OR',
),
delete: () =>
hasPermission(
[

View File

@ -145,6 +145,14 @@ const systemRouter = {
activeMenu: '/system',
parentPath: '/system',
parentName: 'system',
permission: [
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.SHARED_TOOL_READ],
[EditionConst.IS_EE],
'OR'
)
]
},
component: () => import('@/views/system-shared/ToolSharedIndex.vue'),
},

View File

@ -189,7 +189,6 @@
@click="
router.push({ path: `/knowledge/${item.id}/${currentFolder.id}/document` })
"
v-if="permissionPrecise.single(item.id)"
>
<template #icon>
<KnowledgeIcon :type="item.type" />

View File

@ -34,8 +34,8 @@
<el-option v-for="u in user_options" :key="u.id" :value="u.id" :label="u.username" />
</el-select>
</div>
<el-dropdown trigger="click" v-if="!isShared">
<el-button type="primary" class="ml-8" v-if="permissionPrecise.create()">
<el-dropdown trigger="click" v-if="!isShared && permissionPrecise.create()">
<el-button type="primary" class="ml-8">
{{ $t('common.create') }}
<el-icon class="el-icon--right">
<arrow-down />
@ -151,15 +151,7 @@
class="cursor"
@click.stop="openCreateDialog(item)"
:disabled="
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
],
'OR',
)
permissionPrecise.edit()
"
>
<template #icon>