diff --git a/apps/common/auth/handle/impl/user_token.py b/apps/common/auth/handle/impl/user_token.py index b26fc4842..c84ffaa4e 100644 --- a/apps/common/auth/handle/impl/user_token.py +++ b/apps/common/auth/handle/impl/user_token.py @@ -218,11 +218,12 @@ def get_role_list(user, if is_query_model: # 获取工作空间 用户 角色映射数据 workspace_user_role_mapping_list = QuerySet(workspace_user_role_mapping_model).filter(user_id=user.id) - cache.set(key, - [f"{workspace_user_role_mapping.role_id}:/WORKSPACE/{workspace_user_role_mapping.workspace_id}" - for - workspace_user_role_mapping in - workspace_user_role_mapping_list] + [user.role], version=version) + workspace_list = [ + f"{workspace_user_role_mapping.role_id}:/WORKSPACE/{workspace_user_role_mapping.workspace_id}" + for + workspace_user_role_mapping in + workspace_user_role_mapping_list] + [user.role] + cache.set(key, workspace_list, version=version) else: role_list = [user.role] if user.role == RoleConstants.ADMIN.value.__str__(): diff --git a/ui/src/utils/permission-api.ts b/ui/src/utils/permission-api.ts index c800199b8..2375bd3d2 100644 --- a/ui/src/utils/permission-api.ts +++ b/ui/src/utils/permission-api.ts @@ -18,11 +18,13 @@ const workspaceApiMap = { */ export function loadPermissionApi(type: string) { - if (hasPermission([EditionConst.IS_EE, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole], 'AND')) { - // 加载企业版工作空间管理员 API - return workspaceApiMap[type] - } else { - // 加载系统管理员 API - return systemApiMap[type] + if (hasPermission(EditionConst.IS_EE, 'OR')) { + if (hasPermission([RoleConst.ADMIN], 'OR')) { + // 加载企业版工作空间管理员 API + return systemApiMap[type] + } else if (hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole], 'OR')) { + // 加载系统管理员 API + return workspaceApiMap[type] + } } }