0003-ldap-always-report-count-of-synchronized-users-61128.patch
src/authentic2/backends/ldap_backend.py | ||
---|---|---|
896 | 896 |
"""Retrieve group DNs from the LDAP by attributes (memberOf) or by |
897 | 897 |
filter. |
898 | 898 |
""" |
899 |
ldap_uri = conn.get_option(ldap.OPT_URI) |
|
900 | 899 |
group_base_dn = block['group_basedn'] or block['basedn'] |
901 | 900 |
member_of_attribute = block['member_of_attribute'] |
902 | 901 |
group_filter = block['group_filter'] |
... | ... | |
1470 | 1469 |
conn, user_basedn, ldap.SCOPE_SUBTREE, user_filter, attrlist=attribute_names |
1471 | 1470 |
) |
1472 | 1471 |
backend = cls() |
1473 |
count = 0 |
|
1474 | 1472 |
for dn, attrs in results: |
1475 |
count += 1 |
|
1476 | 1473 |
user = backend._return_user(dn, None, conn, block, attrs) |
1477 | 1474 |
if not user: |
1478 | 1475 |
log.warning('unable to retrieve user for dn %s', dn) |
... | ... | |
1486 | 1483 |
', '.join('%s=%s' % (k, v) for k, v in attrs.items()), |
1487 | 1484 |
) |
1488 | 1485 |
yield user |
1489 |
log.info('Search for %s returned %s users.', user_filter, count) |
|
1490 | 1486 | |
1491 | 1487 |
@classmethod |
1492 | 1488 |
def get_users(cls, realm=None): |
... | ... | |
1497 | 1493 |
for block in blocks: |
1498 | 1494 |
if realm and realm != block['realm']: |
1499 | 1495 |
continue |
1496 |
count = 0 |
|
1500 | 1497 |
try: |
1501 |
yield from cls.get_users_for_block(block) |
|
1498 |
for user in cls.get_users_for_block(block): |
|
1499 |
count += 1 |
|
1500 |
yield user |
|
1502 | 1501 |
except ldap.LDAPError as e: |
1503 | 1502 |
log.error('synchronization failed on an LDAP error: "%s"', e) |
1503 |
user_filter = cls.get_sync_ldap_user_filter(block) |
|
1504 |
log.info('Search for %s returned %s users.', user_filter, count) |
|
1504 | 1505 | |
1505 | 1506 |
@classmethod |
1506 | 1507 |
def deactivate_orphaned_users(cls): |
tests/test_ldap.py | ||
---|---|---|
1806 | 1806 |
) |
1807 | 1807 |
% User.objects.first().uuid |
1808 | 1808 |
) |
1809 |
assert caplog.messages[-1] == 'Search for (|(mail=*)(uid=*)) returned 7 users.'
|
|
1809 |
assert caplog.messages[-1] == 'Search for (|(mail=*)(uid=*)) returned 6 users.'
|
|
1810 | 1810 | |
1811 | 1811 |
assert User.objects.count() == 6 |
1812 | 1812 |
assert all(user.first_name == 'Étienne' for user in User.objects.all()) |
1813 |
- |