mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
feat: Resource knowledge permission
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
This commit is contained in:
parent
1f1a1bbad9
commit
00a4b09c99
|
|
@ -50,6 +50,11 @@ const systemManage = {
|
|||
],'OR'
|
||||
),
|
||||
// 文档
|
||||
doc_read: () =>
|
||||
hasPermission([
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_READ
|
||||
],'OR'),
|
||||
doc_create: () => hasPermission(
|
||||
[
|
||||
RoleConst.ADMIN,
|
||||
|
|
@ -104,13 +109,23 @@ const systemManage = {
|
|||
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE
|
||||
],'OR'
|
||||
),
|
||||
|
||||
|
||||
knowledge_chat_user_read: () =>
|
||||
hasPermission([
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_READ
|
||||
],'OR'),
|
||||
knowledge_chat_user_edit: () =>
|
||||
hasPermission([
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT
|
||||
],'OR'),
|
||||
|
||||
|
||||
problem_read: () =>
|
||||
hasPermission([
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_KNOWLEDGE_PROBLEM_READ
|
||||
],'OR'),
|
||||
problem_create: () =>
|
||||
hasPermission([
|
||||
RoleConst.ADMIN,
|
||||
|
|
@ -139,6 +154,11 @@ const systemManage = {
|
|||
folderCreate: () => false,
|
||||
folderEdit: () => false,
|
||||
folderDelete: () => false,
|
||||
hit_test: () =>
|
||||
hasPermission([
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_KNOWLEDGE_HIT_TEST
|
||||
], 'OR'),
|
||||
}
|
||||
|
||||
export default systemManage
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ const share = {
|
|||
'OR'
|
||||
),
|
||||
|
||||
doc_read: () => false,
|
||||
doc_create: () =>
|
||||
hasPermission (
|
||||
[
|
||||
|
|
@ -140,6 +141,7 @@ const share = {
|
|||
],
|
||||
'OR'
|
||||
),
|
||||
knowledge_chat_user_read: () => false,
|
||||
knowledge_chat_user_edit: () =>
|
||||
hasPermission(
|
||||
[
|
||||
|
|
@ -147,8 +149,8 @@ const share = {
|
|||
PermissionConst.SHARED_KNOWLEDGE_CHAT_USER_EDIT
|
||||
],
|
||||
'OR'
|
||||
)
|
||||
,
|
||||
),
|
||||
problem_read: () => false,
|
||||
problem_relate: () =>
|
||||
hasPermission (
|
||||
[
|
||||
|
|
@ -176,5 +178,6 @@ const share = {
|
|||
folderCreate: () => false,
|
||||
folderEdit: () => false,
|
||||
folderDelete: () => false,
|
||||
hit_test: () => false,
|
||||
}
|
||||
export default share
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ const workspaceShare = {
|
|||
export: () => false,
|
||||
delete: () => false,
|
||||
|
||||
doc_read: () => false,
|
||||
doc_create: () => false,
|
||||
doc_vector: () => false,
|
||||
doc_generate: () => false,
|
||||
|
|
@ -21,8 +22,10 @@ const workspaceShare = {
|
|||
doc_export: () => false,
|
||||
doc_download: () => false,
|
||||
|
||||
knowledge_chat_user_read: () => false,
|
||||
knowledge_chat_user_edit: () => false,
|
||||
|
||||
problem_read: () => false,
|
||||
problem_create: () => false,
|
||||
problem_relate: () => false,
|
||||
problem_delete: () => false,
|
||||
|
|
@ -31,6 +34,7 @@ const workspaceShare = {
|
|||
folderCreate: () => false,
|
||||
folderEdit: () => false,
|
||||
folderDelete: () => false,
|
||||
hit_test: () => false,
|
||||
}
|
||||
|
||||
export default workspaceShare
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@ const workspace = {
|
|||
],
|
||||
'OR',
|
||||
),
|
||||
doc_read: () => false,
|
||||
doc_create: (source_id:string) =>
|
||||
hasPermission(
|
||||
[
|
||||
|
|
@ -200,6 +201,7 @@ const workspace = {
|
|||
],
|
||||
'OR',
|
||||
),
|
||||
knowledge_chat_user_read: (source_id:string) => false,
|
||||
knowledge_chat_user_edit: (source_id:string) =>
|
||||
hasPermission(
|
||||
[
|
||||
|
|
@ -209,7 +211,8 @@ const workspace = {
|
|||
PermissionConst.KNOWLEDGE_CHAT_USER_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
||||
]
|
||||
,'OR'
|
||||
),
|
||||
),
|
||||
problem_read: () => false,
|
||||
problem_create: (source_id:string) =>
|
||||
hasPermission(
|
||||
[
|
||||
|
|
@ -250,6 +253,7 @@ const workspace = {
|
|||
],
|
||||
'OR',
|
||||
),
|
||||
hit_test: () => false,
|
||||
}
|
||||
|
||||
export default workspace
|
||||
|
|
|
|||
|
|
@ -61,7 +61,15 @@ const DocumentRouter = {
|
|||
const to: any = get_next_route()
|
||||
if(to.params.folderId == 'share') {
|
||||
return RoleConst.USER.getWorkspaceRole() }
|
||||
}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_READ}
|
||||
},
|
||||
],
|
||||
},
|
||||
component: () => import('@/views/document/index.vue'),
|
||||
|
|
@ -108,7 +116,15 @@ const DocumentRouter = {
|
|||
const to: any = get_next_route()
|
||||
if(to.params.folderId == 'share') {
|
||||
return RoleConst.USER.getWorkspaceRole() }
|
||||
}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return PermissionConst.RESOURCE_KNOWLEDGE_PROBLEM_READ}
|
||||
},
|
||||
],
|
||||
},
|
||||
component: () => import('@/views/problem/index.vue'),
|
||||
|
|
@ -154,7 +170,15 @@ const DocumentRouter = {
|
|||
const to: any = get_next_route()
|
||||
if(to.params.folderId == 'share') {
|
||||
return RoleConst.USER.getWorkspaceRole() }
|
||||
}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return PermissionConst.RESOURCE_KNOWLEDGE_HIT_TEST}
|
||||
},
|
||||
],
|
||||
},
|
||||
component: () => import('@/views/hit-test/index.vue'),
|
||||
|
|
@ -211,7 +235,15 @@ const DocumentRouter = {
|
|||
const to: any = get_next_route()
|
||||
if(to.params.folderId == 'share') {
|
||||
return RoleConst.USER.getWorkspaceRole() }
|
||||
}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_READ}
|
||||
},
|
||||
]
|
||||
},
|
||||
component: () => import('@/views/chat-user/index.vue'),
|
||||
|
|
@ -258,7 +290,15 @@ const DocumentRouter = {
|
|||
const to: any = get_next_route()
|
||||
if(to.params.folderId == 'share') {
|
||||
return RoleConst.USER.getWorkspaceRole() }
|
||||
}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return RoleConst.ADMIN}
|
||||
},
|
||||
()=>{
|
||||
const to: any = get_next_route()
|
||||
if (to.params.folderId == 'resource-management') { return PermissionConst.RESOURCE_KNOWLEDGE_EDIT}
|
||||
},
|
||||
],
|
||||
},
|
||||
component: () => import('@/views/knowledge/KnowledgeSetting.vue'),
|
||||
|
|
|
|||
|
|
@ -246,6 +246,7 @@ const PermissionConst = {
|
|||
|
||||
RESOURCE_KNOWLEDGE_CHAT_USER_READ: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_CHAT_USER:READ'),
|
||||
RESOURCE_KNOWLEDGE_CHAT_USER_EDIT: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_CHAT_USER:READ+EDIT'),
|
||||
RESOURCE_KNOWLEDGE_HIT_TEST: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_HIT_TEST:READ'),
|
||||
|
||||
RESOURCE_APPLICATION_READ: new Permission('SYSTEM_RESOURCE_APPLICATION:READ'),
|
||||
RESOURCE_APPLICATION_EDIT: new Permission('SYSTEM_RESOURCE_APPLICATION:READ+EDIT'),
|
||||
|
|
|
|||
|
|
@ -63,9 +63,7 @@
|
|||
? false
|
||||
: hasPermission(
|
||||
permissionObj[
|
||||
route.path.includes('shared')
|
||||
? 'SHAREDKNOWLEDGE'
|
||||
: (route.meta?.resourceType as string)
|
||||
currentPermissionKey
|
||||
],
|
||||
'OR',
|
||||
)
|
||||
|
|
@ -96,9 +94,7 @@
|
|||
? false
|
||||
: hasPermission(
|
||||
permissionObj[
|
||||
route.path.includes('shared')
|
||||
? 'SHAREDKNOWLEDGE'
|
||||
: (route.meta?.resourceType as string)
|
||||
currentPermissionKey
|
||||
],
|
||||
'OR',
|
||||
)
|
||||
|
|
@ -207,6 +203,8 @@ const permissionObj = ref<any>({
|
|||
[],
|
||||
'OR',
|
||||
),
|
||||
APPLICATION_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_APPLICATION_CHAT_USER_EDIT],
|
||||
RESOURCE_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT],
|
||||
SHAREDKNOWLEDGE: new ComplexPermission(
|
||||
[RoleConst.ADMIN],
|
||||
[PermissionConst.SHARED_KNOWLEDGE_CHAT_USER_EDIT],
|
||||
|
|
@ -215,6 +213,17 @@ const permissionObj = ref<any>({
|
|||
),
|
||||
})
|
||||
|
||||
const currentPermissionKey = computed(() => {
|
||||
if (route.path.includes('shared')) return 'SHAREDKNOWLEDGE'
|
||||
if (route.path.includes('resource-management')) {
|
||||
if (route.meta?.resourceType === 'KNOWLEDGE') { return 'RESOURCE_KNOWLEDGE' }
|
||||
else if (route.meta?.resourceType === 'APPLICATION') { return 'RESOURCE_APPLICATION' }
|
||||
}
|
||||
return route.meta?.resourceType as string
|
||||
})
|
||||
|
||||
console.log(currentPermissionKey.value)
|
||||
|
||||
const resource = reactive({
|
||||
resource_id: route.params.id as string,
|
||||
resource_type: route.meta.resourceType as string,
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
:content="$t('views.system.resource_management.management')"
|
||||
placement="top"
|
||||
>
|
||||
<span class="mr-8">
|
||||
<span class="mr-8"
|
||||
v-if="ManagePermission()"
|
||||
>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
|
|
@ -178,7 +180,9 @@
|
|||
</el-button>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<el-dropdown trigger="click">
|
||||
<el-dropdown trigger="click"
|
||||
v-if="MoreFilledPermission()"
|
||||
>
|
||||
<el-button text @click.stop>
|
||||
<el-icon>
|
||||
<MoreFilled />
|
||||
|
|
@ -264,6 +268,23 @@ const permissionPrecise = computed(() => {
|
|||
return permissionMap['knowledge']['systemManage']
|
||||
})
|
||||
|
||||
const ManagePermission = () => {
|
||||
return permissionPrecise.value.doc_read() ||
|
||||
permissionPrecise.value.problem_read() ||
|
||||
permissionPrecise.value.edit() ||
|
||||
permissionPrecise.value.knowledge_chat_user_read() ||
|
||||
permissionPrecise.value.hit_test()
|
||||
}
|
||||
// sync generete edit export delete
|
||||
const MoreFilledPermission = () => {
|
||||
return permissionPrecise.value.sync() ||
|
||||
permissionPrecise.value.generate() ||
|
||||
permissionPrecise.value.edit() ||
|
||||
permissionPrecise.value.export() ||
|
||||
permissionPrecise.value.delete()
|
||||
}
|
||||
|
||||
|
||||
const search_type = ref('name')
|
||||
const search_form = ref<any>({
|
||||
name: '',
|
||||
|
|
|
|||
Loading…
Reference in New Issue