@@ -161,7 +161,7 @@ async def sync_users(self) -> None:
161161 try :
162162 logger .info ("Syncing users with the LDAP directory." )
163163
164- diff , missing_emp , counts = await self .get_user_diff ()
164+ diff , missing_emp , counts , ldap_users = await self .get_user_diff ()
165165
166166 add_users = counts [LDAPSyncAction .ADD ]
167167 remove_users = counts [LDAPSyncAction .REMOVE ]
@@ -205,7 +205,7 @@ async def sync_users(self) -> None:
205205 user .ldap_user .employee_number if user .ldap_user else str (user .discord_user .id )
206206 )
207207
208- await self ._handle_left_users (handled )
208+ await self ._handle_left_users (handled , ldap_users )
209209
210210 logger .info ("LDAP: Sync complete." )
211211 except Exception as e : # noqa: BLE001
@@ -214,10 +214,8 @@ async def sync_users(self) -> None:
214214 f":x: LDAP Sync Error: ```python\n { e } ```"
215215 )
216216
217- async def _handle_left_users (self , handled : list [int ]) -> None :
217+ async def _handle_left_users (self , handled : list [int ], ldap_users : list [ ldap . LDAPUser ] ) -> None :
218218 """Handle users that have left the guild and so were not processed."""
219- ldap_users = await ldap .find_users ()
220-
221219 for user in ldap_users :
222220 if user .employee_number is None or user .employee_number in handled :
223221 continue
@@ -367,7 +365,7 @@ def _user_groups(user: discord.Member) -> list[str]:
367365
368366 async def get_user_diff (
369367 self ,
370- ) -> tuple [list [DiffedUser ], list [ldap .LDAPUser ], Counter [LDAPSyncAction ]]:
368+ ) -> tuple [list [DiffedUser ], list [ldap .LDAPUser ], Counter [LDAPSyncAction ], list [ ldap . LDAPUser ] ]:
371369 """Calculate and return the diff of users against LDAP from the guild."""
372370 guild = self .bot .get_guild (CONFIG .guild_id )
373371 users = await ldap .find_users ()
@@ -416,7 +414,7 @@ async def get_user_diff(
416414
417415 counter = Counter ([user .action for user in diff ])
418416
419- return diff , missing_emp , counter
417+ return diff , missing_emp , counter , users
420418
421419 @staticmethod
422420 def _format_user (discord_user : discord .Member , ldap_user : ldap .LDAPUser | None ) -> str :
@@ -429,7 +427,7 @@ def _format_user(discord_user: discord.Member, ldap_user: ldap.LDAPUser | None)
429427 @ldap_group .command (name = "sync" )
430428 async def sync (self , ctx : commands .Context ) -> None :
431429 """List users found in the LDAP directory."""
432- diff , missing_emp , counts = await self .get_user_diff ()
430+ diff , missing_emp , counts , _ = await self .get_user_diff ()
433431
434432 add_users = counts [LDAPSyncAction .ADD ]
435433 remove_users = counts [LDAPSyncAction .REMOVE ]
0 commit comments