From c797519f7ad4bf78e6a0ceb4d1640b0760c39939 Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Fri, 27 Mar 2020 23:18:25 +0000 Subject: [PATCH] Fix typo and logic of additional field sync --- aleksis/apps/ldap/util/ldap_sync.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/aleksis/apps/ldap/util/ldap_sync.py b/aleksis/apps/ldap/util/ldap_sync.py index 0563239..936b1f0 100644 --- a/aleksis/apps/ldap/util/ldap_sync.py +++ b/aleksis/apps/ldap/util/ldap_sync.py @@ -14,7 +14,7 @@ def setting_name_from_field(model, field): def syncable_fields(model): """ Collect all fields that can be synced on a model """ - return [field for field in models._meta.fields if field.editable and not field.auto_created] + return [field for field in model._meta.fields if field.editable and not field.auto_created] def update_constance_config_fields(): @@ -61,17 +61,16 @@ def ldap_sync_from_user(sender, instance, created, raw, using, update_fields, ** return person.user = instance + person.save() - # Synchronise additional fields if enabled - for field in syncable_fields(Person): - setting_name = setting_name_from_field(Person, field) - - # Try sync if constance setting for this field is non-empty - ldap_field = getattr(config, setting_name, "") - if ldap_field and ldap_field in instance.ldap_user.attrs.data: - setattr(person, field._meta.name, instance.ldap_user.attrs.data[ldap_field]) + # Synchronise additional fields if enabled + for field in syncable_fields(Person): + setting_name = setting_name_from_field(Person, field) - person.save() + # Try sync if constance setting for this field is non-empty + ldap_field = getattr(config, setting_name, "") + if ldap_field and ldap_field in instance.ldap_user.attrs.data: + setattr(instance.person, field.name, instance.ldap_user.attrs.data[ldap_field][0]) if config.ENABLE_LDAP_GROUP_SYNC: # Resolve Group objects from LDAP group objects -- GitLab