feat: Shared knowledge permission

This commit is contained in:
zhangzhanwei 2025-06-25 11:15:23 +08:00 committed by zhanweizhang7
parent 73ee9bf602
commit 2364bd275a
4 changed files with 152 additions and 30 deletions

View File

@ -13,7 +13,6 @@ const workspace = {
'OR', 'OR',
), ),
create: () => false, create: () => false,
single: () => false,
sync: () => false, sync: () => false,
vector: () => false, vector: () => false,
generate: () => false, generate: () => false,

View File

@ -3,27 +3,152 @@ import { ComplexPermission } from '@/utils/permission/type'
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data' import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
const share = { const share = {
is_share: () => false, is_share: () => false,
create: () => false, create: () =>
single: () => false, hasPermission (
sync: () => false, [
vector: () => false, RoleConst.ADMIN,
generate: () => false, PermissionConst.SHARED_KNOWLEDGE_CREATE
setting: () => false, ],
export: () => false, 'OR'
delete: () => false, ),
sync: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_SYNC
],
'OR'
),
vector: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_VECTOR
],
'OR'
),
generate: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_GENERATE
],
'OR'
),
setting: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_EDIT
],
'OR'
),
export: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_EXPORT
],
'OR'
),
delete: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DELETE
],
'OR'
),
doc_create: () => false, doc_create: () =>
doc_vector: () => false, hasPermission (
doc_generate: () => false, [
doc_migrate: () => false, RoleConst.ADMIN,
doc_edit: () => false, PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_CREATE
doc_sync: () => false, ],
doc_delete: () => false, 'OR'
doc_export: () => false, ),
doc_vector: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_VECTOR
],
'OR'
),
doc_generate: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_GENERATE
],
'OR'
),
doc_migrate: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_MIGRATE
],
'OR'
),
doc_edit: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_EDIT
],
'OR'
),
doc_sync: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_SYNC
],
'OR'
),
doc_delete: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_DELETE
],
'OR'
),
doc_export: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_EXPORT
],
'OR'
),
problem_create: () => false, problem_create: () =>
problem_relate: () => false, hasPermission (
problem_delete: () => false, [
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_PROBLEM_CREATE
],
'OR'
),
problem_relate: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_PROBLEM_READ
],
'OR'
),
problem_delete: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_PROBLEM_DELETE
],
'OR'
),
} }
export default share export default share

View File

@ -23,16 +23,6 @@ const workspace = {
], ],
'OR', 'OR',
), ),
single: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_READ.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_READ.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
sync: (source_id:string) => sync: (source_id:string) =>
hasPermission( hasPermission(
[ [

View File

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