From 291766ec2f9dc5321502ea4cdab815ef33f25622 Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Fri, 23 Oct 2026 14:46:09 +0800 Subject: [PATCH] fix: update user role workspace mapping to handle admin roles without workspace IDs --- apps/users/serializers/user.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/users/serializers/user.py b/apps/users/serializers/user.py index 5acaa29bc10..6895daef90a 100644 --- a/apps/users/serializers/user.py +++ b/apps/users/serializers/user.py @@ -451,9 +451,13 @@ def _get_user_roles(user_ids, is_admin=True): continue user_role_mapping[user_id].add(relation.role.role_name) user_role_setting_mapping[user_id][role_id].append(workspace_id) - user_role_workspace_mapping[user_id][relation.role.role_name].append( - workspace_mapping.get(workspace_id, workspace_id) - ) + if relation.role.type == RoleConstants.ADMIN.name: + # 系统层级角色不关联具体空间,无需空间id + user_role_workspace_mapping[user_id].setdefault(relation.role.role_name, []) + else: + user_role_workspace_mapping[user_id][relation.role.role_name].append( + workspace_mapping.get(workspace_id, workspace_id) + ) # 将 set 转换为 list 以符合返回格式 user_role_mapping = {uid: list(roles) for uid, roles in user_role_mapping.items()}