refactor: workspace add user member

This commit is contained in:
wxg0103 2025-06-11 11:35:47 +08:00
parent bec1cbd000
commit c07fd323bf

View File

@ -431,18 +431,31 @@ class UserManageSerializer(serializers.Serializer):
.filter(workspace_id=workspace_id) .filter(workspace_id=workspace_id)
.exclude(role__id='workspace_admin') .exclude(role__id='workspace_admin')
.select_related('role', 'user') # 预加载外键数据 .select_related('role', 'user') # 预加载外键数据
.distinct('user_id')
) )
return [ user_dict = {}
{ for relation in user_role_relations:
'id': relation.user.id, user_id = relation.user.id
'nick_name': relation.user.nick_name, if user_id not in user_dict:
'email': relation.user.email, user_dict[user_id] = {
'role': relation.role.name 'id': user_id,
} 'nick_name': relation.user.nick_name,
for relation in user_role_relations 'email': relation.user.email,
] 'roles': [relation.role.name]
return [] }
else:
user_dict[user_id]['roles'].append(relation.role.name)
# 将字典值转换为列表形式
return list(user_dict.values())
user_list = User.objects.exclude(role=RoleConstants.ADMIN.name)
return [
{
'id': user.id,
'nick_name': user.nick_name,
'email': user.email,
'roles': [RoleConstants.USER.name]
} for user in user_list
]
class BatchDelete(serializers.Serializer): class BatchDelete(serializers.Serializer):
ids = serializers.ListField(required=True, label=_('User IDs')) ids = serializers.ListField(required=True, label=_('User IDs'))