Skip to content
Snippets Groups Projects
Verified Commit 1132fc11 authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

[Reformat] Fix variables

parent e1186033
No related branches found
No related tags found
No related merge requests found
...@@ -25,6 +25,6 @@ class LDAPConfig(AppConfig): ...@@ -25,6 +25,6 @@ class LDAPConfig(AppConfig):
update_dynamic_preferences() update_dynamic_preferences()
User = get_user_model() user = get_user_model()
if get_site_preferences()["ldap__person_sync_on_login"]: if get_site_preferences()["ldap__person_sync_on_login"]:
post_save.connect(ldap_sync_user_on_login, sender=User) post_save.connect(ldap_sync_user_on_login, sender=user)
...@@ -66,8 +66,8 @@ def from_ldap(value, instance, field, dn, ldap_field): ...@@ -66,8 +66,8 @@ def from_ldap(value, instance, field, dn, ldap_field):
def update_dynamic_preferences(): def update_dynamic_preferences():
"""Auto-generate sync field settings from models.""" """Auto-generate sync field settings from models."""
Person = apps.get_model("core", "Person") person = apps.get_model("core", "Person")
for model in (Person,): for model in (person,):
# Collect fields that are matchable # Collect fields that are matchable
for field in model.syncable_fields(): for field in model.syncable_fields():
setting_name = setting_name_from_field(model, field) setting_name = setting_name_from_field(model, field)
...@@ -128,7 +128,7 @@ def ldap_sync_user_on_login(sender, instance, created, **kwargs): ...@@ -128,7 +128,7 @@ def ldap_sync_user_on_login(sender, instance, created, **kwargs):
return return
instance._skip_signal = True instance._skip_signal = True
Person = apps.get_model("core", "Person") person = apps.get_model("core", "Person")
if ( if (
get_site_preferences()["ldap__enable_sync"] get_site_preferences()["ldap__enable_sync"]
...@@ -140,10 +140,10 @@ def ldap_sync_user_on_login(sender, instance, created, **kwargs): ...@@ -140,10 +140,10 @@ def ldap_sync_user_on_login(sender, instance, created, **kwargs):
person = ldap_sync_from_user( person = ldap_sync_from_user(
instance, instance.ldap_user.dn, instance.ldap_user.attrs.data instance, instance.ldap_user.dn, instance.ldap_user.attrs.data
) )
except Person.DoesNotExist: except person.DoesNotExist:
logger.warn(f"No matching person for user {instance.username}") logger.warn(f"No matching person for user {instance.username}")
return return
except Person.MultipleObjectsReturned: except person.MultipleObjectsReturned:
logger.error(f"More than one matching person for user {instance.username}") logger.error(f"More than one matching person for user {instance.username}")
return return
except (DataError, IntegrityError, ValueError) as e: except (DataError, IntegrityError, ValueError) as e:
...@@ -174,13 +174,13 @@ def ldap_sync_user_on_login(sender, instance, created, **kwargs): ...@@ -174,13 +174,13 @@ def ldap_sync_user_on_login(sender, instance, created, **kwargs):
@transaction.atomic @transaction.atomic
def ldap_sync_from_user(user, dn, attrs): def ldap_sync_from_user(user, dn, attrs):
"""Synchronise person information from a User object (with ldap_user) to Django.""" """Synchronise person information from a User object (with ldap_user) to Django."""
Person = apps.get_model("core", "Person") person = apps.get_model("core", "Person")
# Check if there is an existing person connected to the user. # Check if there is an existing person connected to the user.
if Person.objects.filter(user__username=user.username).exists(): if Person.objects.filter(user__username=user.username).exists():
person = user.person person_ = user.person
created = False created = False
logger.info(f"Existing person {person} already linked to user {user.username}") logger.info(f"Existing person {person_} already linked to user {user.username}")
# FIXME ALso account for existing person with DN here # FIXME ALso account for existing person with DN here
else: else:
# Build filter criteria depending on config # Build filter criteria depending on config
...@@ -196,20 +196,20 @@ def ldap_sync_from_user(user, dn, attrs): ...@@ -196,20 +196,20 @@ def ldap_sync_from_user(user, dn, attrs):
defaults["email"] = user.email defaults["email"] = user.email
if get_site_preferences()["ldap__create_missing_persons"]: if get_site_preferences()["ldap__create_missing_persons"]:
person, created = Person.objects.get_or_create(**matches, defaults=defaults) person_, created = Person.objects.get_or_create(**matches, defaults=defaults)
else: else:
person = Person.objects.get(**matches) person_ = Person.objects.get(**matches)
created = False created = False
person.user = user person_.user = user
status = "New" if created else "Existing" status = "New" if created else "Existing"
logger.info(f"{status} person {person} linked to user {user.username}") logger.info(f"{status} person {person_} linked to user {user.username}")
person.ldap_dn = dn.lower() person_.ldap_dn = dn.lower()
if not created: if not created:
person.first_name = user.first_name person_.first_name = user.first_name
person.last_name = user.last_name person_.last_name = user.last_name
person.email = user.email person_.email = user.email
# Synchronise additional fields if enabled # Synchronise additional fields if enabled
for field in Person.syncable_fields(): for field in Person.syncable_fields():
...@@ -226,19 +226,19 @@ def ldap_sync_from_user(user, dn, attrs): ...@@ -226,19 +226,19 @@ def ldap_sync_from_user(user, dn, attrs):
value = apply_templates(value, patterns, templates) value = apply_templates(value, patterns, templates)
# Opportunistically convert LDAP string value to Python object # Opportunistically convert LDAP string value to Python object
value = from_ldap(value, person, field, dn, ldap_field) value = from_ldap(value, person_, field, dn, ldap_field)
setattr(person, field.name, value) setattr(person_, field.name, value)
logger.debug(f"Field {field.name} set to {value} for {person}") logger.debug(f"Field {field.name} set to {value} for {person_}")
person.save() person_.save()
return person return person_
@transaction.atomic @transaction.atomic
def ldap_sync_from_groups(group_infos): def ldap_sync_from_groups(group_infos):
"""Synchronise group information from LDAP results to Django.""" """Synchronise group information from LDAP results to Django."""
Group = apps.get_model("core", "Group") group = apps.get_model("core", "Group")
# Resolve Group objects from LDAP group objects # Resolve Group objects from LDAP group objects
group_objects = [] group_objects = []
...@@ -272,13 +272,13 @@ def ldap_sync_from_groups(group_infos): ...@@ -272,13 +272,13 @@ def ldap_sync_from_groups(group_infos):
) )
# Shorten names to fit into model fields # Shorten names to fit into model fields
short_name = short_name[: Group._meta.get_field("short_name").max_length] short_name = short_name[: group._meta.get_field("short_name").max_length]
name = name[: Group._meta.get_field("name").max_length] name = name[: group._meta.get_field("name").max_length]
# FIXME FInd a way to throw exceptions correctly but still continue import # FIXME FInd a way to throw exceptions correctly but still continue import
try: try:
with transaction.atomic(): with transaction.atomic():
group, created = Group.objects.update_or_create( group, created = group.objects.update_or_create(
ldap_dn=ldap_group[0].lower(), ldap_dn=ldap_group[0].lower(),
defaults={"short_name": short_name, "name": name}, defaults={"short_name": short_name, "name": name},
) )
...@@ -300,7 +300,7 @@ def mass_ldap_import(): ...@@ -300,7 +300,7 @@ def mass_ldap_import():
"""Add utility code for mass import from ldap.""" """Add utility code for mass import from ldap."""
from django_auth_ldap.backend import LDAPBackend, _LDAPUser # noqa from django_auth_ldap.backend import LDAPBackend, _LDAPUser # noqa
Person = apps.get_model("core", "Person") person = apps.get_model("core", "Person")
# Abuse pre-configured search object as general LDAP interface # Abuse pre-configured search object as general LDAP interface
backend = LDAPBackend() backend = LDAPBackend()
...@@ -338,11 +338,11 @@ def mass_ldap_import(): ...@@ -338,11 +338,11 @@ def mass_ldap_import():
if created or get_site_preferences()["ldap__sync_on_update"]: if created or get_site_preferences()["ldap__sync_on_update"]:
try: try:
with transaction.atomic(): with transaction.atomic():
person = ldap_sync_from_user(user, dn, attrs) person_ = ldap_sync_from_user(user, dn, attrs)
except Person.DoesNotExist: except Person.DoesNotExist:
logger.warn(f"No matching person for user {user.username}") logger.warn(f"No matching person for user {user.username}")
continue continue
except Person.MultipleObjectsReturned: except person_.MultipleObjectsReturned:
logger.error(f"More than one matching person for user {user.username}") logger.error(f"More than one matching person for user {user.username}")
continue continue
except (DataError, IntegrityError, ValueError) as e: except (DataError, IntegrityError, ValueError) as e:
......
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