@@ -199,27 +199,30 @@ async def bulk_set_groups_disabled(
199199 for group_id in bulk_groups .ids :
200200 db_groups .append (await self .get_validated_group (db , group_id ))
201201
202- for db_group in db_groups :
202+ groups_to_update = [db_group for db_group in db_groups if db_group .is_disabled != is_disabled ]
203+
204+ for db_group in groups_to_update :
203205 db_group .is_disabled = is_disabled
204206
205207 await db .commit ()
206208
207- for db_group in db_groups :
209+ for db_group in groups_to_update :
208210 await db .refresh (db_group )
209211 await load_group_attrs (db_group )
210212
211- users = await get_users (
212- db ,
213- group_ids = [group .id for group in db_groups ],
214- status = [UserStatus .active , UserStatus .on_hold ],
215- )
216- await sync_users (users )
213+ if groups_to_update :
214+ users = await get_users (
215+ db ,
216+ group_ids = [group .id for group in groups_to_update ],
217+ status = [UserStatus .active , UserStatus .on_hold ],
218+ )
219+ await sync_users (users )
217220
218- for db_group in db_groups :
221+ for db_group in groups_to_update :
219222 group = GroupResponse .model_validate (db_group )
220223 asyncio .create_task (notification .modify_group (group , admin .username ))
221224 logger .info (
222225 f'Group "{ db_group .name } " bulk { "disabled" if is_disabled else "enabled" } by admin "{ admin .username } "'
223226 )
224227
225- return self ._build_bulk_action_response (db_groups )
228+ return self ._build_bulk_action_response (groups_to_update )
0 commit comments