feat: Resource knowledge permission
This commit is contained in:
parent
1f1a1bbad9
commit
00a4b09c99
@ -50,6 +50,11 @@ const systemManage = {
|
|||||||
],'OR'
|
],'OR'
|
||||||
),
|
),
|
||||||
// 文档
|
// 文档
|
||||||
|
doc_read: () =>
|
||||||
|
hasPermission([
|
||||||
|
RoleConst.ADMIN,
|
||||||
|
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_READ
|
||||||
|
],'OR'),
|
||||||
doc_create: () => hasPermission(
|
doc_create: () => hasPermission(
|
||||||
[
|
[
|
||||||
RoleConst.ADMIN,
|
RoleConst.ADMIN,
|
||||||
@ -104,13 +109,23 @@ const systemManage = {
|
|||||||
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE
|
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE
|
||||||
],'OR'
|
],'OR'
|
||||||
),
|
),
|
||||||
|
|
||||||
|
knowledge_chat_user_read: () =>
|
||||||
|
hasPermission([
|
||||||
|
RoleConst.ADMIN,
|
||||||
|
PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_READ
|
||||||
|
],'OR'),
|
||||||
knowledge_chat_user_edit: () =>
|
knowledge_chat_user_edit: () =>
|
||||||
hasPermission([
|
hasPermission([
|
||||||
RoleConst.ADMIN,
|
RoleConst.ADMIN,
|
||||||
PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT
|
PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT
|
||||||
],'OR'),
|
],'OR'),
|
||||||
|
|
||||||
|
problem_read: () =>
|
||||||
|
hasPermission([
|
||||||
|
RoleConst.ADMIN,
|
||||||
|
PermissionConst.RESOURCE_KNOWLEDGE_PROBLEM_READ
|
||||||
|
],'OR'),
|
||||||
problem_create: () =>
|
problem_create: () =>
|
||||||
hasPermission([
|
hasPermission([
|
||||||
RoleConst.ADMIN,
|
RoleConst.ADMIN,
|
||||||
@ -139,6 +154,11 @@ const systemManage = {
|
|||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
|
hit_test: () =>
|
||||||
|
hasPermission([
|
||||||
|
RoleConst.ADMIN,
|
||||||
|
PermissionConst.RESOURCE_KNOWLEDGE_HIT_TEST
|
||||||
|
], 'OR'),
|
||||||
}
|
}
|
||||||
|
|
||||||
export default systemManage
|
export default systemManage
|
||||||
|
|||||||
@ -60,6 +60,7 @@ const share = {
|
|||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
|
|
||||||
|
doc_read: () => false,
|
||||||
doc_create: () =>
|
doc_create: () =>
|
||||||
hasPermission (
|
hasPermission (
|
||||||
[
|
[
|
||||||
@ -140,6 +141,7 @@ const share = {
|
|||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
),
|
),
|
||||||
|
knowledge_chat_user_read: () => false,
|
||||||
knowledge_chat_user_edit: () =>
|
knowledge_chat_user_edit: () =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
@ -147,8 +149,8 @@ const share = {
|
|||||||
PermissionConst.SHARED_KNOWLEDGE_CHAT_USER_EDIT
|
PermissionConst.SHARED_KNOWLEDGE_CHAT_USER_EDIT
|
||||||
],
|
],
|
||||||
'OR'
|
'OR'
|
||||||
)
|
),
|
||||||
,
|
problem_read: () => false,
|
||||||
problem_relate: () =>
|
problem_relate: () =>
|
||||||
hasPermission (
|
hasPermission (
|
||||||
[
|
[
|
||||||
@ -176,5 +178,6 @@ const share = {
|
|||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
|
hit_test: () => false,
|
||||||
}
|
}
|
||||||
export default share
|
export default share
|
||||||
|
|||||||
@ -11,6 +11,7 @@ const workspaceShare = {
|
|||||||
export: () => false,
|
export: () => false,
|
||||||
delete: () => false,
|
delete: () => false,
|
||||||
|
|
||||||
|
doc_read: () => false,
|
||||||
doc_create: () => false,
|
doc_create: () => false,
|
||||||
doc_vector: () => false,
|
doc_vector: () => false,
|
||||||
doc_generate: () => false,
|
doc_generate: () => false,
|
||||||
@ -21,8 +22,10 @@ const workspaceShare = {
|
|||||||
doc_export: () => false,
|
doc_export: () => false,
|
||||||
doc_download: () => false,
|
doc_download: () => false,
|
||||||
|
|
||||||
|
knowledge_chat_user_read: () => false,
|
||||||
knowledge_chat_user_edit: () => false,
|
knowledge_chat_user_edit: () => false,
|
||||||
|
|
||||||
|
problem_read: () => false,
|
||||||
problem_create: () => false,
|
problem_create: () => false,
|
||||||
problem_relate: () => false,
|
problem_relate: () => false,
|
||||||
problem_delete: () => false,
|
problem_delete: () => false,
|
||||||
@ -31,6 +34,7 @@ const workspaceShare = {
|
|||||||
folderCreate: () => false,
|
folderCreate: () => false,
|
||||||
folderEdit: () => false,
|
folderEdit: () => false,
|
||||||
folderDelete: () => false,
|
folderDelete: () => false,
|
||||||
|
hit_test: () => false,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default workspaceShare
|
export default workspaceShare
|
||||||
|
|||||||
@ -110,6 +110,7 @@ const workspace = {
|
|||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
),
|
),
|
||||||
|
doc_read: () => false,
|
||||||
doc_create: (source_id:string) =>
|
doc_create: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
@ -200,6 +201,7 @@ const workspace = {
|
|||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
),
|
),
|
||||||
|
knowledge_chat_user_read: (source_id:string) => false,
|
||||||
knowledge_chat_user_edit: (source_id:string) =>
|
knowledge_chat_user_edit: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
@ -209,7 +211,8 @@ const workspace = {
|
|||||||
PermissionConst.KNOWLEDGE_CHAT_USER_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
PermissionConst.KNOWLEDGE_CHAT_USER_EDIT.getWorkspacePermissionWorkspaceManageRole,
|
||||||
]
|
]
|
||||||
,'OR'
|
,'OR'
|
||||||
),
|
),
|
||||||
|
problem_read: () => false,
|
||||||
problem_create: (source_id:string) =>
|
problem_create: (source_id:string) =>
|
||||||
hasPermission(
|
hasPermission(
|
||||||
[
|
[
|
||||||
@ -250,6 +253,7 @@ const workspace = {
|
|||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
),
|
),
|
||||||
|
hit_test: () => false,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default workspace
|
export default workspace
|
||||||
|
|||||||
@ -61,7 +61,15 @@ const DocumentRouter = {
|
|||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
if(to.params.folderId == 'share') {
|
if(to.params.folderId == 'share') {
|
||||||
return RoleConst.USER.getWorkspaceRole() }
|
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'),
|
component: () => import('@/views/document/index.vue'),
|
||||||
@ -108,7 +116,15 @@ const DocumentRouter = {
|
|||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
if(to.params.folderId == 'share') {
|
if(to.params.folderId == 'share') {
|
||||||
return RoleConst.USER.getWorkspaceRole() }
|
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'),
|
component: () => import('@/views/problem/index.vue'),
|
||||||
@ -154,7 +170,15 @@ const DocumentRouter = {
|
|||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
if(to.params.folderId == 'share') {
|
if(to.params.folderId == 'share') {
|
||||||
return RoleConst.USER.getWorkspaceRole() }
|
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'),
|
component: () => import('@/views/hit-test/index.vue'),
|
||||||
@ -211,7 +235,15 @@ const DocumentRouter = {
|
|||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
if(to.params.folderId == 'share') {
|
if(to.params.folderId == 'share') {
|
||||||
return RoleConst.USER.getWorkspaceRole() }
|
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'),
|
component: () => import('@/views/chat-user/index.vue'),
|
||||||
@ -258,7 +290,15 @@ const DocumentRouter = {
|
|||||||
const to: any = get_next_route()
|
const to: any = get_next_route()
|
||||||
if(to.params.folderId == 'share') {
|
if(to.params.folderId == 'share') {
|
||||||
return RoleConst.USER.getWorkspaceRole() }
|
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'),
|
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_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_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_READ: new Permission('SYSTEM_RESOURCE_APPLICATION:READ'),
|
||||||
RESOURCE_APPLICATION_EDIT: new Permission('SYSTEM_RESOURCE_APPLICATION:READ+EDIT'),
|
RESOURCE_APPLICATION_EDIT: new Permission('SYSTEM_RESOURCE_APPLICATION:READ+EDIT'),
|
||||||
|
|||||||
@ -63,9 +63,7 @@
|
|||||||
? false
|
? false
|
||||||
: hasPermission(
|
: hasPermission(
|
||||||
permissionObj[
|
permissionObj[
|
||||||
route.path.includes('shared')
|
currentPermissionKey
|
||||||
? 'SHAREDKNOWLEDGE'
|
|
||||||
: (route.meta?.resourceType as string)
|
|
||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
)
|
)
|
||||||
@ -96,9 +94,7 @@
|
|||||||
? false
|
? false
|
||||||
: hasPermission(
|
: hasPermission(
|
||||||
permissionObj[
|
permissionObj[
|
||||||
route.path.includes('shared')
|
currentPermissionKey
|
||||||
? 'SHAREDKNOWLEDGE'
|
|
||||||
: (route.meta?.resourceType as string)
|
|
||||||
],
|
],
|
||||||
'OR',
|
'OR',
|
||||||
)
|
)
|
||||||
@ -207,6 +203,8 @@ const permissionObj = ref<any>({
|
|||||||
[],
|
[],
|
||||||
'OR',
|
'OR',
|
||||||
),
|
),
|
||||||
|
APPLICATION_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_APPLICATION_CHAT_USER_EDIT],
|
||||||
|
RESOURCE_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT],
|
||||||
SHAREDKNOWLEDGE: new ComplexPermission(
|
SHAREDKNOWLEDGE: new ComplexPermission(
|
||||||
[RoleConst.ADMIN],
|
[RoleConst.ADMIN],
|
||||||
[PermissionConst.SHARED_KNOWLEDGE_CHAT_USER_EDIT],
|
[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({
|
const resource = reactive({
|
||||||
resource_id: route.params.id as string,
|
resource_id: route.params.id as string,
|
||||||
resource_type: route.meta.resourceType as string,
|
resource_type: route.meta.resourceType as string,
|
||||||
|
|||||||
@ -146,7 +146,9 @@
|
|||||||
:content="$t('views.system.resource_management.management')"
|
:content="$t('views.system.resource_management.management')"
|
||||||
placement="top"
|
placement="top"
|
||||||
>
|
>
|
||||||
<span class="mr-8">
|
<span class="mr-8"
|
||||||
|
v-if="ManagePermission()"
|
||||||
|
>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
text
|
text
|
||||||
@ -178,7 +180,9 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click"
|
||||||
|
v-if="MoreFilledPermission()"
|
||||||
|
>
|
||||||
<el-button text @click.stop>
|
<el-button text @click.stop>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<MoreFilled />
|
<MoreFilled />
|
||||||
@ -264,6 +268,23 @@ const permissionPrecise = computed(() => {
|
|||||||
return permissionMap['knowledge']['systemManage']
|
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_type = ref('name')
|
||||||
const search_form = ref<any>({
|
const search_form = ref<any>({
|
||||||
name: '',
|
name: '',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user