mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 10:12:51 +00:00
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],
|
||||
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,
|
||||
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
||||
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ const getAPIKey: (application_id: string, loading?: Ref<boolean>) => Promise<Res
|
|||
application_id,
|
||||
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,
|
||||
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>,
|
||||
) => Promise<Result<boolean>> = (application_id, api_key_id, loading) => {
|
||||
return del(
|
||||
`${prefix.value}/${application_id}/application/${api_key_id}`,
|
||||
`${prefix.value}/${application_id}/application_key/${api_key_id}`,
|
||||
undefined,
|
||||
undefined,
|
||||
loading,
|
||||
|
|
@ -63,7 +63,7 @@ const putAPIKey: (
|
|||
loading?: Ref<boolean>,
|
||||
) => Promise<Result<any>> = (application_id, api_key_id, data, loading) => {
|
||||
return put(
|
||||
`${prefix.value}/${application_id}/application/${api_key_id}`,
|
||||
`${prefix.value}/${application_id}/application_key/${api_key_id}`,
|
||||
data,
|
||||
undefined,
|
||||
loading,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import { SourceTypeEnum } from '@/enums/common'
|
||||
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 = {
|
||||
path: '/knowledge/:id/:folderId',
|
||||
name: 'KnowledgeDetail',
|
||||
|
|
@ -21,14 +22,30 @@ const DocumentRouter = {
|
|||
group: 'KnowledgeDetail',
|
||||
permission: [
|
||||
RoleConst.ADMIN,
|
||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
return PermissionConst.KNOWLEDGE_DOCUMENT_READ.getKnowledgeWorkspaceResourcePermission(
|
||||
to ? to.params.id : '',
|
||||
)
|
||||
if (to.params.folder_id == 'shared') {
|
||||
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'),
|
||||
|
|
@ -46,14 +63,20 @@ const DocumentRouter = {
|
|||
group: 'KnowledgeDetail',
|
||||
permission: [
|
||||
RoleConst.ADMIN,
|
||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
return PermissionConst.KNOWLEDGE_PROBLEM_READ.getKnowledgeWorkspaceResourcePermission(
|
||||
to ? to.params.id : '',
|
||||
)
|
||||
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_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'),
|
||||
|
|
@ -68,6 +91,23 @@ const DocumentRouter = {
|
|||
parentPath: '/knowledge/:id/:folderId',
|
||||
parentName: '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'),
|
||||
},
|
||||
|
|
@ -83,16 +123,15 @@ const DocumentRouter = {
|
|||
parentName: 'KnowledgeDetail',
|
||||
resourceType: SourceTypeEnum.KNOWLEDGE,
|
||||
group: 'KnowledgeDetail',
|
||||
permission: [
|
||||
RoleConst.ADMIN,
|
||||
permission: new ComplexPermission([ RoleConst.ADMIN,
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'shared') {
|
||||
return RoleConst.ADMIN
|
||||
} else {
|
||||
return RoleConst.WORKSPACE_MANAGE.getWorkspaceRole
|
||||
return RoleConst.WORKSPACE_MANAGE.getWorkspaceRole()
|
||||
}
|
||||
},
|
||||
},],[
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'shared') {
|
||||
|
|
@ -106,13 +145,10 @@ const DocumentRouter = {
|
|||
() => {
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folder_id == 'shared') {
|
||||
return RoleConst.ADMIN
|
||||
} else {
|
||||
return PermissionConst.KNOWLEDGE_CHAT_USER_READ
|
||||
.getWorkspacePermissionWorkspaceManageRole
|
||||
}
|
||||
return PermissionConst.SHARED_KNOWLEDGE_CHAT_USER_READ
|
||||
} else { return PermissionConst.KNOWLEDGE_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole() }
|
||||
},
|
||||
],
|
||||
],[EditionConst.IS_EE,EditionConst.IS_PE],'OR'),
|
||||
},
|
||||
component: () => import('@/views/chat-user/index.vue'),
|
||||
},
|
||||
|
|
@ -129,14 +165,20 @@ const DocumentRouter = {
|
|||
group: 'KnowledgeDetail',
|
||||
permission: [
|
||||
RoleConst.ADMIN,
|
||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||
() => {
|
||||
const to: any = get_next_route()
|
||||
return PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(
|
||||
to ? to.params.id : '',
|
||||
)
|
||||
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_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'),
|
||||
|
|
|
|||
|
|
@ -190,6 +190,9 @@ const PermissionConst = {
|
|||
SHARED_KNOWLEDGE_PROBLEM_EDIT: new Permission('SYSTEM_KNOWLEDGE_PROBLEM:READ+EDIT'),
|
||||
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_EDIT: new Permission('SYSTEM_KNOWLEDGE_CHAT_USER:READ+EDIT'),
|
||||
|
||||
|
|
|
|||
|
|
@ -222,7 +222,9 @@
|
|||
</el-button>
|
||||
<template #dropdown>
|
||||
<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>
|
||||
{{ $t('views.application.operation.toChat') }}
|
||||
</el-dropdown-item>
|
||||
|
|
|
|||
Loading…
Reference in New Issue