diff --git a/ui/src/permission/tool/workspace.ts b/ui/src/permission/tool/workspace.ts index adf904aa2..1dbf2a098 100644 --- a/ui/src/permission/tool/workspace.ts +++ b/ui/src/permission/tool/workspace.ts @@ -18,9 +18,71 @@ const workspace = { RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.USER.getWorkspaceRole, PermissionConst.TOOL_DELETE.getWorkspacePermission, + PermissionConst.TOOL_DELETE.getWorkspacePermissionWorkspaceManageRole ], 'OR', ), + create: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.TOOL_CREATE.getWorkspacePermission, + PermissionConst.TOOL_CREATE.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + switch: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.TOOL_EDIT.getWorkspacePermission, + PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + edit: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.TOOL_EDIT.getWorkspacePermission, + PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + copy: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.TOOL_EXPORT.getWorkspacePermission, + PermissionConst.TOOL_EXPORT.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + export: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.TOOL_EXPORT.getWorkspacePermission, + PermissionConst.TOOL_EXPORT.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + debug: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.TOOL_DEBUG.getWorkspacePermission, + PermissionConst.TOOL_DEBUG.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + } export default workspace diff --git a/ui/src/router/modules/document.ts b/ui/src/router/modules/document.ts index bdd4f7b74..6263a4010 100644 --- a/ui/src/router/modules/document.ts +++ b/ui/src/router/modules/document.ts @@ -1,3 +1,4 @@ +import role from '@/api/system/role' import { ChatUserResourceEnum } from '@/enums/workspaceChatUser' import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data' @@ -18,6 +19,12 @@ const DocumentRouter = { active: 'document', parentPath: '/knowledge/:id/:folderId', parentName: 'KnowledgeDetail', + permission: [ + RoleConst.ADMIN, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermission, + PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermissionWorkspaceManageRole + ], }, component: () => import('@/views/document/index.vue'), }, @@ -31,6 +38,12 @@ const DocumentRouter = { active: 'problem', parentPath: '/knowledge/:id/:folderId', parentName: 'KnowledgeDetail', + permission: [ + RoleConst.ADMIN, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermission, + PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermissionWorkspaceManageRole + ], }, component: () => import('@/views/problem/index.vue'), }, @@ -57,7 +70,12 @@ const DocumentRouter = { parentPath: '/knowledge/:id/:folderId', parentName: 'KnowledgeDetail', resourceType: ChatUserResourceEnum.KNOWLEDGE, - permission: [EditionConst.IS_PE, EditionConst.IS_EE], + permission: [ + RoleConst.ADMIN, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermission, + PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole + ], }, component: () => import('@/views/chat-user/index.vue'), }, @@ -71,6 +89,13 @@ const DocumentRouter = { active: 'setting', parentPath: '/knowledge/:id/:folderId', parentName: 'KnowledgeDetail', + permission: [ + RoleConst.ADMIN, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermission, + PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole + ] + }, component: () => import('@/views/knowledge/KnowledgeSetting.vue'), }, diff --git a/ui/src/views/application/index.vue b/ui/src/views/application/index.vue index 3e198fd96..9215c19b9 100644 --- a/ui/src/views/application/index.vue +++ b/ui/src/views/application/index.vue @@ -48,8 +48,9 @@ type="primary" class="ml-8" v-hasPermission="[ + RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, - RoleConst.USER.getWorkspaceRole, + PermissionConst.APPLICATION_EDIT.getWorkspacePermissionWorkspaceManageRole, PermissionConst.APPLICATION_EDIT.getWorkspacePermission, ]" > diff --git a/ui/src/views/document/index.vue b/ui/src/views/document/index.vue index 690ea2711..da63d0df7 100644 --- a/ui/src/views/document/index.vue +++ b/ui/src/views/document/index.vue @@ -14,7 +14,7 @@ " v-hasPermission="[ RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, - RoleConst.USER.getWorkspaceRole, + RoleConst.ADMIN, PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id), ]" @@ -25,7 +25,7 @@ type="primary" @click="importDoc" v-hasPermission="[ - RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN, PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id), ]" @@ -38,17 +38,21 @@ router.push({ path: `/knowledge/import`, query: { id: id, folder_token: knowledgeDetail.meta.folder_token }, - }) - " + })" + v-hasPermission="[ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN, + PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole, + PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id), + ]" >{{ $t('views.document.importDocument') }} {{ $t('views.knowledge.setting.vectorization') }} @@ -56,9 +60,9 @@ @click="openGenerateDialog()" :disabled="multipleSelection.length === 0" v-hasPermission="[ - RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN, PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermissionWorkspaceManageRole, - PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermission, + PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getKnowledgeWorkspaceResourcePermission(id), ]" >{{ $t('views.document.generateQuestion.title') }} @@ -66,9 +70,9 @@ @click="openknowledgeDialog()" :disabled="multipleSelection.length === 0" v-hasPermission="[ - RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN, PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermissionWorkspaceManageRole, - PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermission, + PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getKnowledgeWorkspaceResourcePermission(id), ]" >{{ $t('views.document.setting.migration') }} @@ -84,9 +88,9 @@ @click="openBatchEditDocument" :disabled="multipleSelection.length === 0" v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, - RoleConst.USER.getWorkspaceRole, + RoleConst.ADMIN, PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermissionWorkspaceManageRole, - PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission],'OR')" + PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getKnowledgeWorkspaceResourcePermission(id)],'OR')" > {{ $t('common.setting') }} @@ -96,15 +100,20 @@ :disabled="multipleSelection.length === 0" v-if="knowledgeDetail.type === 1 && hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, - RoleConst.USER.getWorkspaceRole, - PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission],'OR')" + RoleConst.ADMIN, + PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission, + PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')" >{{ $t('views.document.syncDocument') }} {{ $t('views.document.syncDocument') }} @@ -112,6 +121,12 @@ divided @click="deleteMulDocument" :disabled="multipleSelection.length === 0" + v-if=" + hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.ADMIN, + PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getWorkspacePermission, + PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getKnowledgeWorkspaceResourcePermission(id)],'OR') + " >{{ $t('common.delete') }} diff --git a/ui/src/views/knowledge/KnowledgeSetting.vue b/ui/src/views/knowledge/KnowledgeSetting.vue index 14ffe3dd9..b40b5b327 100644 --- a/ui/src/views/knowledge/KnowledgeSetting.vue +++ b/ui/src/views/knowledge/KnowledgeSetting.vue @@ -140,7 +140,12 @@
- {{ $t('common.save') }} + {{ $t('common.save') }}
@@ -158,6 +163,8 @@ import { MsgSuccess, MsgConfirm } from '@/utils/message' import { isAppIcon } from '@/utils/common' import useStore from '@/stores' import { t } from '@/locales' +import { PermissionConst, RoleConst } from '@/utils/permission/data' +import { hasPermission } from '@/utils/permission/index' const route = useRoute() const { diff --git a/ui/src/views/knowledge/index.vue b/ui/src/views/knowledge/index.vue index d62093add..3419688c5 100644 --- a/ui/src/views/knowledge/index.vue +++ b/ui/src/views/knowledge/index.vue @@ -50,6 +50,8 @@ class="ml-8" v-hasPermission="[ RoleConst.ADMIN, + RoleConst.USER.getWorkspaceRole, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission, ]" @@ -196,6 +198,11 @@ @click=" router.push({ path: `/knowledge/${item.id}/${currentFolder.id}/document` }) " + v-hasPermission="[ + RoleConst.ADMIN, + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermissionWorkspaceManageRole, + PermissionConst.KNOWLEDGE_DOCUMENT_READ.getKnowledgeWorkspaceResourcePermission(item.id),]" >