fix: resolve N+1 query in SCIM group_to_scim user lookup (#21005)

This commit is contained in:
Classic298
2026-01-29 21:43:33 +04:00
committed by GitHub
parent 96a9696383
commit e686554392
+10 -11
View File
@@ -352,18 +352,17 @@ def user_to_scim(user: UserModel, request: Request, db=None) -> SCIMUser:
def group_to_scim(group: GroupModel, request: Request, db=None) -> SCIMGroup: def group_to_scim(group: GroupModel, request: Request, db=None) -> SCIMGroup:
"""Convert internal Group model to SCIM Group""" """Convert internal Group model to SCIM Group"""
member_ids = Groups.get_group_user_ids_by_id(group.id, db) or [] member_ids = Groups.get_group_user_ids_by_id(group.id, db) or []
members = []
for user_id in member_ids: # Batch-fetch all users to avoid N+1 queries
user = Users.get_user_by_id(user_id, db=db) users = Users.get_users_by_user_ids(member_ids, db=db) if member_ids else []
if user: members = [
members.append( SCIMGroupMember(
SCIMGroupMember( value=user.id,
value=user.id, ref=f"{request.base_url}api/v1/scim/v2/Users/{user.id}",
ref=f"{request.base_url}api/v1/scim/v2/Users/{user.id}", display=user.name,
display=user.name, )
) for user in users
) ]
return SCIMGroup( return SCIMGroup(
id=group.id, id=group.id,