Skip to content
Snippets Groups Projects
Verified Commit 0f57af5a authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Fix access to imported groups in ldap mass import

Previously, the cache list was getting out of sync if some group produced an error.

Caught by @hansegucker.
parent de809e65
No related branches found
No related tags found
No related merge requests found
......@@ -304,6 +304,9 @@ def mass_ldap_import():
ldap_groups = backend.settings.GROUP_SEARCH.execute(connection)
group_objects = ldap_sync_from_groups(ldap_groups)
# Create lookup table as cache for later code
group_dict = {obj.ldap_dn: obj for obj in group_objects}
# Guess LDAP username field from user filter
uid_field = re.search(
r"([a-zA-Z]+)=%\(user\)s", backend.settings.USER_SEARCH.filterstr
......@@ -348,13 +351,15 @@ def mass_ldap_import():
member_attr = getattr(backend.settings.GROUP_TYPE, "member_attr", "memberUid")
owner_attr = get_site_preferences()["ldap__group_sync_owner_attr"]
for group, ldap_group in tqdm(
zip(group_objects, ldap_groups),
for ldap_group in tqdm(
ldap_groups,
desc="Sync. group members",
total=len(group_objects),
**TQDM_DEFAULTS
):
dn, attrs = ldap_group
group = group_dict[dn]
ldap_members = (
[_.lower() for _ in attrs[member_attr]] if member_attr in attrs else []
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment