diff --git a/authentik/sources/ldap/tasks.py b/authentik/sources/ldap/tasks.py index 55a257c9e..9566f8322 100644 --- a/authentik/sources/ldap/tasks.py +++ b/authentik/sources/ldap/tasks.py @@ -1,4 +1,6 @@ """LDAP Sync tasks""" +from typing import Optional + from django.utils.text import slugify from ldap3.core.exceptions import LDAPException from structlog.stdlib import get_logger @@ -29,7 +31,8 @@ def ldap_sync_all(): @CELERY_APP.task( bind=True, base=MonitoredTask, soft_time_limit=60 * 60 * 2, task_time_limit=60 * 60 * 2 ) -def ldap_sync(self: MonitoredTask, source_pk: str, sync_class: str): +# TODO: remove Optional[str] in 2021.10 +def ldap_sync(self: MonitoredTask, source_pk: str, sync_class: Optional[str] = None): """Synchronization of an LDAP Source""" self.result_timeout_hours = 2 try: @@ -38,6 +41,8 @@ def ldap_sync(self: MonitoredTask, source_pk: str, sync_class: str): # Because the source couldn't be found, we don't have a UID # to set the state with return + if not sync_class: + return sync = path_to_class(sync_class) self.set_uid(f"{slugify(source.name)}-{sync.__name__}") try: