From d65f37d2d0e0b7b7fd0fdd174b4ea886e96db1ae Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 27 Jan 2022 12:20:22 +0100 Subject: [PATCH 3/3] ldap: always report count of synchronized users (#61128) --- src/authentic2/backends/ldap_backend.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/authentic2/backends/ldap_backend.py b/src/authentic2/backends/ldap_backend.py index 751552d6..159a5f27 100644 --- a/src/authentic2/backends/ldap_backend.py +++ b/src/authentic2/backends/ldap_backend.py @@ -896,7 +896,6 @@ class LDAPBackend: """Retrieve group DNs from the LDAP by attributes (memberOf) or by filter. """ - ldap_uri = conn.get_option(ldap.OPT_URI) group_base_dn = block['group_basedn'] or block['basedn'] member_of_attribute = block['member_of_attribute'] group_filter = block['group_filter'] @@ -1470,9 +1469,7 @@ class LDAPBackend: conn, user_basedn, ldap.SCOPE_SUBTREE, user_filter, attrlist=attribute_names ) backend = cls() - count = 0 for dn, attrs in results: - count += 1 user = backend._return_user(dn, None, conn, block, attrs) if not user: log.warning('unable to retrieve user for dn %s', dn) @@ -1486,7 +1483,6 @@ class LDAPBackend: ', '.join('%s=%s' % (k, v) for k, v in attrs.items()), ) yield user - log.info('Search for %s returned %s users.', user_filter, count) @classmethod def get_users(cls, realm=None): @@ -1497,10 +1493,15 @@ class LDAPBackend: for block in blocks: if realm and realm != block['realm']: continue + count = 0 try: - yield from cls.get_users_for_block(block) + for user in cls.get_users_for_block(block): + count += 1 + yield user except ldap.LDAPError as e: log.error('synchronization failed on an LDAP error: "%s"', e) + user_filter = cls.get_sync_ldap_user_filter(block) + log.info('Search for %s returned %s users.', user_filter, count) @classmethod def deactivate_orphaned_users(cls): -- 2.34.1