diff --git a/ui/src/stores/modules/user.ts b/ui/src/stores/modules/user.ts index 23b02c467..b1bd0f810 100644 --- a/ui/src/stores/modules/user.ts +++ b/ui/src/stores/modules/user.ts @@ -94,7 +94,19 @@ const useUserStore = defineStore('user', { isEE() { return this.edition == 'EE' && this.license_is_valid }, - getEditionName() {画 + getHasPermissionWorkspaceManage() { + const workspaceManagePermissions = this.userInfo?.role + .filter((permission) => permission.startsWith('WORKSPACE_MANAGE')) + .map((permission) => { + const parts = permission.split('/WORKSPACE/'); + return parts.length > 1 ? parts[1] : null; // 提取工作空间ID + }) + .filter((id) => id !== null); // 过滤掉无效的ID + if (workspaceManagePermissions && workspaceManagePermissions.length > 0) { + this.setWorkspaceId(workspaceManagePermissions[0]) + } + }, + getEditionName() { return this.edition }, async profile(loading?: Ref) { diff --git a/ui/src/utils/dynamics-api/permission-api.ts b/ui/src/utils/dynamics-api/permission-api.ts index 680e2ba0a..efb95d8bd 100644 --- a/ui/src/utils/dynamics-api/permission-api.ts +++ b/ui/src/utils/dynamics-api/permission-api.ts @@ -1,5 +1,5 @@ -import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data' -import { hasPermission } from '@/utils/permission/index' +import {PermissionConst, EditionConst, RoleConst} from '@/utils/permission/data' +import {hasPermission} from '@/utils/permission/index' import roleSystemApi from '@/api/system/role' import roleWorkspaceApi from '@/api/workspace/role' import systemWorkspaceApi from '@/api/system/workspace' @@ -8,6 +8,7 @@ import systemChatUserApi from '@/api/system/chat-user' import workspaceChatUserApi from '@/api/workspace/chat-user' import systemUserGroupApi from '@/api/system/user-group' import workspaceUserGroupApi from '@/api/workspace/user-group' +import useStore from "@/stores"; // 系统管理员 API const systemApiMap = { @@ -28,9 +29,11 @@ const workspaceApiMap = { /** 动态导入 API 模块的函数 * loadPermissionApi('role') */ +const {user} = useStore() export function loadPermissionApi(type: string) { if (hasPermission([EditionConst.IS_EE, EditionConst.IS_PE], 'OR')) { + user.getHasPermissionWorkspaceManage() if (hasPermission([RoleConst.ADMIN, RoleConst.EXTENDS_ADMIN], 'OR')) { // 加载系统管理员 API return systemApiMap[type]