diff --git a/ui/src/router/modules/system.ts b/ui/src/router/modules/system.ts index 55a122e41..55b0c9e46 100644 --- a/ui/src/router/modules/system.ts +++ b/ui/src/router/modules/system.ts @@ -35,7 +35,7 @@ const systemRouter = { permission: [ new ComplexPermission( [RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole], - [PermissionConst.ROLE_READ], + [PermissionConst.ROLE_READ, PermissionConst.WORKSPACE_ROLE_READ], [EditionConst.IS_EE], 'OR', ), @@ -57,7 +57,7 @@ const systemRouter = { new ComplexPermission( [RoleConst.WORKSPACE_MANAGE, RoleConst.ADMIN], [ - PermissionConst.WORKSPACE_READ.getWorkspacePermissionWorkspaceManageRole, + PermissionConst.WORKSPACE_WORKSPACE_READ, PermissionConst.WORKSPACE_READ, ], [EditionConst.IS_EE], diff --git a/ui/src/utils/dynamics-api/permission-api.ts b/ui/src/utils/dynamics-api/permission-api.ts index 2375bd3d2..2e467275a 100644 --- a/ui/src/utils/dynamics-api/permission-api.ts +++ b/ui/src/utils/dynamics-api/permission-api.ts @@ -2,6 +2,7 @@ import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/dat import { hasPermission } from '@/utils/permission/index' import roleSystemApi from '@/api/system/role' import roleWorkspaceApi from '@/api/workspace/role' +import { ComplexPermission } from '../permission/type' // 系统管理员 API const systemApiMap = { @@ -19,11 +20,19 @@ const workspaceApiMap = { export function loadPermissionApi(type: string) { if (hasPermission(EditionConst.IS_EE, 'OR')) { - if (hasPermission([RoleConst.ADMIN], 'OR')) { - // 加载企业版工作空间管理员 API - return systemApiMap[type] - } else if (hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole], 'OR')) { + if (hasPermission(new ComplexPermission ( + [RoleConst.ADMIN], + [PermissionConst.ROLE_READ], + [], + 'OR'),'OR')) { // 加载系统管理员 API + return systemApiMap[type] + } if (hasPermission(new ComplexPermission ( + [RoleConst.WORKSPACE_MANAGE.getWorkspaceRole], + [PermissionConst.WORKSPACE_ROLE_READ.getWorkspacePermissionWorkspaceManageRole], + [], + 'OR'),'OR' )) { + // 加载企业版工作空间管理员 API return workspaceApiMap[type] } } diff --git a/ui/src/utils/permission/data.ts b/ui/src/utils/permission/data.ts index a38a5646b..44a1d755e 100644 --- a/ui/src/utils/permission/data.ts +++ b/ui/src/utils/permission/data.ts @@ -75,11 +75,11 @@ const PermissionConst = { ROLE_READ: new Permission('ROLE:READ'), - ROLE_CREATE: new Permission('ROLE:READ'), - ROLE_EDIT: new Permission('ROLE:READ'), - ROLE_DELETE: new Permission('ROLE:READ'), - ROLE_ADD_MEMBER: new Permission('ROLE:READ'), - ROLE_REMOVE_MEMBER: new Permission('ROLE:READ'), + ROLE_CREATE: new Permission('ROLE:READ+CREATE'), + ROLE_EDIT: new Permission('ROLE:READ+EDIT'), + ROLE_DELETE: new Permission('ROLE:READ+DELETE'), + ROLE_ADD_MEMBER: new Permission('ROLE:READ+ADD_MEMBER'), + ROLE_REMOVE_MEMBER: new Permission('ROLE:READ+REMOVE_MEMBER'), KNOWLEDGE_READ: new Permission('KNOWLEDGE:READ'), diff --git a/ui/src/views/system/role/component/Member.vue b/ui/src/views/system/role/component/Member.vue index 485fb4bb2..64e47e214 100644 --- a/ui/src/views/system/role/component/Member.vue +++ b/ui/src/views/system/role/component/Member.vue @@ -6,12 +6,11 @@ @click="handleAdd" v-hasPermission=" new ComplexPermission( - [RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole], - [PermissionConst.ROLE_ADD_MEMBER.getWorkspacePermission], + [RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE], + [PermissionConst.WORKSPACE_ROLE_ADD_MEMBER, PermissionConst.ROLE_ADD_MEMBER], [], 'OR', - ) - " + )" > {{ $t('views.role.member.add') }} @@ -57,8 +56,8 @@ @click.stop="handleDelete(row)" v-hasPermission=" new ComplexPermission( - [RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole], - [PermissionConst.ROLE_REMOVE_MEMBER.getWorkspacePermission], + [RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE], + [PermissionConst.ROLE_REMOVE_MEMBER, PermissionConst.WORKSPACE_ROLE_REMOVE_MEMBER], [], 'OR', ) diff --git a/ui/src/views/system/role/index.vue b/ui/src/views/system/role/index.vue index e0f6df65e..027a7849b 100644 --- a/ui/src/views/system/role/index.vue +++ b/ui/src/views/system/role/index.vue @@ -2,9 +2,9 @@