Skip to content
Snippets Groups Projects
Verified Commit c3677ccd authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Add fix to match unique numbers of students

parent 9ae61f5d
Branches
Tags
No related merge requests found
......@@ -187,23 +187,37 @@ def ldap_sync_from_user(user, dn, attrs):
logger.info(f"Existing person {person} already linked to user {user.username}")
# FIXME ALso account for existing person with DN here
else:
# Build filter criteria depending on config
matches = {}
defaults = {}
if "-email" in get_site_preferences()["ldap__matching_fields"]:
matches["email"] = user.email
defaults["first_name"] = user.first_name
defaults["last_name"] = user.last_name
if "-name" in get_site_preferences()["ldap__matching_fields"]:
matches["first_name"] = user.first_name
matches["last_name"] = user.last_name
defaults["email"] = user.email
if get_site_preferences()["ldap__create_missing_persons"]:
person, created = Person.objects.get_or_create(**matches, defaults=defaults)
else:
person = Person.objects.get(**matches)
created = False
person_found = False
tag = "employeenumber"
if tag in attrs:
try:
value_to_check = attrs[tag][0]
logger.info(value_to_check)
person = Person.objects.filter(import_ref_csv__icontains=value_to_check).get()
created = False
person_found = True
logger.info("Found match by unique ID")
except Person.DoesNotExist:
pass
if not person_found:
# Build filter criteria depending on config
matches = {}
defaults = {}
if "-email" in get_site_preferences()["ldap__matching_fields"]:
matches["email"] = user.email
defaults["first_name"] = user.first_name
defaults["last_name"] = user.last_name
if "-name" in get_site_preferences()["ldap__matching_fields"]:
matches["first_name"] = user.first_name
matches["last_name"] = user.last_name
defaults["email"] = user.email
if get_site_preferences()["ldap__create_missing_persons"]:
person, created = Person.objects.get_or_create(**matches, defaults=defaults)
else:
person = Person.objects.get(**matches)
created = False
person.user = user
status = "New" if created else "Existing"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment