feat: Shared knowledge access permission (#3450)
This commit is contained in:
parent
6110bf314a
commit
b71a854d7c
@ -754,12 +754,6 @@ class PermissionConstants(Enum):
|
|||||||
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
|
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
|
||||||
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW],
|
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW],
|
||||||
)
|
)
|
||||||
APPLICATION_TO_CHAT = Permission(group=Group.APPLICATION, operate=Operate.TO_CHAT,
|
|
||||||
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
|
||||||
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
|
|
||||||
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
|
|
||||||
label=_('Chat')
|
|
||||||
)
|
|
||||||
APPLICATION_DEBUG = Permission(group=Group.APPLICATION, operate=Operate.DEBUG,
|
APPLICATION_DEBUG = Permission(group=Group.APPLICATION, operate=Operate.DEBUG,
|
||||||
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
||||||
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
|
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
|
||||||
|
|||||||
@ -18,7 +18,7 @@ const getAPIKey: (application_id: string, loading?: Ref<boolean>) => Promise<Res
|
|||||||
application_id,
|
application_id,
|
||||||
loading,
|
loading,
|
||||||
) => {
|
) => {
|
||||||
return get(`${prefix.value}/${application_id}/application`, undefined, loading)
|
return get(`${prefix.value}/${application_id}/application_key`, undefined, loading)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,7 +29,7 @@ const postAPIKey: (application_id: string, loading?: Ref<boolean>) => Promise<Re
|
|||||||
application_id,
|
application_id,
|
||||||
loading,
|
loading,
|
||||||
) => {
|
) => {
|
||||||
return post(`${prefix.value}/${application_id}/application`, {}, undefined, loading)
|
return post(`${prefix.value}/${application_id}/application_key`, {}, undefined, loading)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,7 +42,7 @@ const delAPIKey: (
|
|||||||
loading?: Ref<boolean>,
|
loading?: Ref<boolean>,
|
||||||
) => Promise<Result<boolean>> = (application_id, api_key_id, loading) => {
|
) => Promise<Result<boolean>> = (application_id, api_key_id, loading) => {
|
||||||
return del(
|
return del(
|
||||||
`${prefix.value}/${application_id}/application/${api_key_id}`,
|
`${prefix.value}/${application_id}/application_key/${api_key_id}`,
|
||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
loading,
|
loading,
|
||||||
@ -63,7 +63,7 @@ const putAPIKey: (
|
|||||||
loading?: Ref<boolean>,
|
loading?: Ref<boolean>,
|
||||||
) => Promise<Result<any>> = (application_id, api_key_id, data, loading) => {
|
) => Promise<Result<any>> = (application_id, api_key_id, data, loading) => {
|
||||||
return put(
|
return put(
|
||||||
`${prefix.value}/${application_id}/application/${api_key_id}`,
|
`${prefix.value}/${application_id}/application_key/${api_key_id}`,
|
||||||
data,
|
data,
|
||||||
undefined,
|
undefined,
|
||||||
loading,
|
loading,
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { SourceTypeEnum } from '@/enums/common'
|
import { SourceTypeEnum } from '@/enums/common'
|
||||||
import { get_next_route } from '@/utils/permission'
|
import { get_next_route } from '@/utils/permission'
|
||||||
import { PermissionConst, RoleConst } from '@/utils/permission/data'
|
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
const DocumentRouter = {
|
const DocumentRouter = {
|
||||||
path: '/knowledge/:id/:folderId',
|
path: '/knowledge/:id/:folderId',
|
||||||
name: 'KnowledgeDetail',
|
name: 'KnowledgeDetail',
|
||||||
@ -21,14 +22,30 @@ const DocumentRouter = {
|
|||||||
group: 'KnowledgeDetail',
|
group: 'KnowledgeDetail',
|
||||||
permission: [
|
permission: [
|
||||||
RoleConst.ADMIN,
|
RoleConst.ADMIN,
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
() => {
|
() => {
|
||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
return PermissionConst.KNOWLEDGE_DOCUMENT_READ.getKnowledgeWorkspaceResourcePermission(
|
if (to.params.folder_id == 'shared') {
|
||||||
to ? to.params.id : '',
|
return RoleConst.ADMIN
|
||||||
)
|
}else {
|
||||||
|
return RoleConst.WORKSPACE_MANAGE.getWorkspaceRole
|
||||||
|
}
|
||||||
},
|
},
|
||||||
PermissionConst.KNOWLEDGE_READ.getWorkspacePermissionWorkspaceManageRole,
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
|
||||||
|
if (to.params.folderId == 'shared') {
|
||||||
|
|
||||||
|
return PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_READ } else {
|
||||||
|
return PermissionConst.KNOWLEDGE_DOCUMENT_READ.getKnowledgeWorkspaceResourcePermission(
|
||||||
|
to ? to.params.id : '',
|
||||||
|
)}
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
if (to.params.folderId == 'shared'){ return RoleConst.ADMIN } else {
|
||||||
|
return PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermissionWorkspaceManageRole
|
||||||
|
}
|
||||||
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
component: () => import('@/views/document/index.vue'),
|
component: () => import('@/views/document/index.vue'),
|
||||||
@ -46,14 +63,20 @@ const DocumentRouter = {
|
|||||||
group: 'KnowledgeDetail',
|
group: 'KnowledgeDetail',
|
||||||
permission: [
|
permission: [
|
||||||
RoleConst.ADMIN,
|
RoleConst.ADMIN,
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
() => {
|
() => {
|
||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
return PermissionConst.KNOWLEDGE_PROBLEM_READ.getKnowledgeWorkspaceResourcePermission(
|
if (to.params.folderId == 'shared') { return RoleConst.ADMIN } else { return RoleConst.WORKSPACE_MANAGE.getWorkspaceRole }
|
||||||
to ? to.params.id : '',
|
},
|
||||||
)
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
if (to.params.folderId == 'shared') { return PermissionConst.SHARED_KNOWLEDGE_PROBLEM_READ } else { return PermissionConst.KNOWLEDGE_PROBLEM_READ.getKnowledgeWorkspaceResourcePermission(
|
||||||
|
to ? to.params.id : '',
|
||||||
|
) }
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
if (to.params.folderId == 'shared') { return RoleConst.ADMIN } else { return PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermissionWorkspaceManageRole }
|
||||||
},
|
},
|
||||||
PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermissionWorkspaceManageRole,
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
component: () => import('@/views/problem/index.vue'),
|
component: () => import('@/views/problem/index.vue'),
|
||||||
@ -68,6 +91,23 @@ const DocumentRouter = {
|
|||||||
parentPath: '/knowledge/:id/:folderId',
|
parentPath: '/knowledge/:id/:folderId',
|
||||||
parentName: 'KnowledgeDetail',
|
parentName: 'KnowledgeDetail',
|
||||||
group: 'KnowledgeDetail',
|
group: 'KnowledgeDetail',
|
||||||
|
permission: [
|
||||||
|
RoleConst.ADMIN,
|
||||||
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
if (to.params.folderId == 'shared') { return RoleConst.ADMIN } else { return RoleConst.WORKSPACE_MANAGE.getWorkspaceRole }
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
if (to.params.folderId == 'shared') { return PermissionConst.SHARED_KNOWLEDGE_HIT_TEST_READ } else { return PermissionConst.KNOWLEDGE_HIT_TEST_READ.getKnowledgeWorkspaceResourcePermission(
|
||||||
|
to ? to.params.id : '',
|
||||||
|
) }
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
if (to.params.folderId == 'shared') { return RoleConst.ADMIN } else { return PermissionConst.KNOWLEDGE_HIT_TEST_READ.getWorkspacePermissionWorkspaceManageRole }
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
component: () => import('@/views/hit-test/index.vue'),
|
component: () => import('@/views/hit-test/index.vue'),
|
||||||
},
|
},
|
||||||
@ -83,16 +123,15 @@ const DocumentRouter = {
|
|||||||
parentName: 'KnowledgeDetail',
|
parentName: 'KnowledgeDetail',
|
||||||
resourceType: SourceTypeEnum.KNOWLEDGE,
|
resourceType: SourceTypeEnum.KNOWLEDGE,
|
||||||
group: 'KnowledgeDetail',
|
group: 'KnowledgeDetail',
|
||||||
permission: [
|
permission: new ComplexPermission([ RoleConst.ADMIN,
|
||||||
RoleConst.ADMIN,
|
|
||||||
() => {
|
() => {
|
||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
if (to.params.folderId == 'shared') {
|
if (to.params.folderId == 'shared') {
|
||||||
return RoleConst.ADMIN
|
return RoleConst.ADMIN
|
||||||
} else {
|
} else {
|
||||||
return RoleConst.WORKSPACE_MANAGE.getWorkspaceRole
|
return RoleConst.WORKSPACE_MANAGE.getWorkspaceRole()
|
||||||
}
|
}
|
||||||
},
|
},],[
|
||||||
() => {
|
() => {
|
||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
if (to.params.folderId == 'shared') {
|
if (to.params.folderId == 'shared') {
|
||||||
@ -106,13 +145,10 @@ const DocumentRouter = {
|
|||||||
() => {
|
() => {
|
||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
if (to.params.folder_id == 'shared') {
|
if (to.params.folder_id == 'shared') {
|
||||||
return RoleConst.ADMIN
|
return PermissionConst.SHARED_KNOWLEDGE_CHAT_USER_READ
|
||||||
} else {
|
} else { return PermissionConst.KNOWLEDGE_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole() }
|
||||||
return PermissionConst.KNOWLEDGE_CHAT_USER_READ
|
|
||||||
.getWorkspacePermissionWorkspaceManageRole
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
],
|
],[EditionConst.IS_EE,EditionConst.IS_PE],'OR'),
|
||||||
},
|
},
|
||||||
component: () => import('@/views/chat-user/index.vue'),
|
component: () => import('@/views/chat-user/index.vue'),
|
||||||
},
|
},
|
||||||
@ -129,14 +165,20 @@ const DocumentRouter = {
|
|||||||
group: 'KnowledgeDetail',
|
group: 'KnowledgeDetail',
|
||||||
permission: [
|
permission: [
|
||||||
RoleConst.ADMIN,
|
RoleConst.ADMIN,
|
||||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
|
||||||
() => {
|
() => {
|
||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
return PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(
|
if (to.params.folderId == 'shared') { return RoleConst.ADMIN } else { return RoleConst.WORKSPACE_MANAGE.getWorkspaceRole }
|
||||||
to ? to.params.id : '',
|
},
|
||||||
)
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
if (to.params.folderId == 'shared') { return PermissionConst.SHARED_KNOWLEDGE_EDIT } else { return PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(
|
||||||
|
to ? to.params.id : '',
|
||||||
|
) }
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
const to: any = get_next_route()
|
||||||
|
if (to.params.folderId == 'shared') { return RoleConst.ADMIN } else { return PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole }
|
||||||
},
|
},
|
||||||
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
component: () => import('@/views/knowledge/KnowledgeSetting.vue'),
|
component: () => import('@/views/knowledge/KnowledgeSetting.vue'),
|
||||||
|
|||||||
@ -190,6 +190,9 @@ const PermissionConst = {
|
|||||||
SHARED_KNOWLEDGE_PROBLEM_EDIT: new Permission('SYSTEM_KNOWLEDGE_PROBLEM:READ+EDIT'),
|
SHARED_KNOWLEDGE_PROBLEM_EDIT: new Permission('SYSTEM_KNOWLEDGE_PROBLEM:READ+EDIT'),
|
||||||
SHARED_KNOWLEDGE_PROBLEM_DELETE: new Permission('SYSTEM_KNOWLEDGE_PROBLEM:READ+DELETE'),
|
SHARED_KNOWLEDGE_PROBLEM_DELETE: new Permission('SYSTEM_KNOWLEDGE_PROBLEM:READ+DELETE'),
|
||||||
|
|
||||||
|
SHARED_KNOWLEDGE_HIT_TEST_READ: new Permission('SYSTEM_KNOWLEDGE_HIT_TEST:READ'),
|
||||||
|
KNOWLEDGE_HIT_TEST_READ: new Permission('KNOWLEDGE_HIT_TEST:READ'),
|
||||||
|
|
||||||
SHARED_KNOWLEDGE_CHAT_USER_READ: new Permission('SYSTEM_KNOWLEDGE_CHAT_USER:READ'),
|
SHARED_KNOWLEDGE_CHAT_USER_READ: new Permission('SYSTEM_KNOWLEDGE_CHAT_USER:READ'),
|
||||||
SHARED_KNOWLEDGE_CHAT_USER_EDIT: new Permission('SYSTEM_KNOWLEDGE_CHAT_USER:READ+EDIT'),
|
SHARED_KNOWLEDGE_CHAT_USER_EDIT: new Permission('SYSTEM_KNOWLEDGE_CHAT_USER:READ+EDIT'),
|
||||||
|
|
||||||
|
|||||||
@ -222,7 +222,9 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item @click.stop="getAccessToken(item.id)">
|
<el-dropdown-item @click.stop="getAccessToken(item.id)"
|
||||||
|
v-if="permissionPrecise.overview_access(item.id)"
|
||||||
|
>
|
||||||
<AppIcon iconName="app-create-chat"></AppIcon>
|
<AppIcon iconName="app-create-chat"></AppIcon>
|
||||||
{{ $t('views.application.operation.toChat') }}
|
{{ $t('views.application.operation.toChat') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user