import logging import sys from django.conf import settings from django.contrib.auth.backends import ModelBackend logger = logging.getLogger(__name__) class MyLDAPBackend(ModelBackend): def authenticate(self, request, username=None, password=None, **kwargs): user = super().authenticate( request=request, username=username, password=password, **kwargs ) is_testing = ( "test" in sys.argv or "pytest" in sys.modules ) if user and not settings.DEBUG and not is_testing: user.create_ldap_account(password) return user