from django.conf import settings from ldap3 import Server, Connection, SYNC def create_account(username, raw_password): server = Server("localhost") # The SAFE_SYNC client strategy doesn't seem to be present in Buster version of ldap3. We might want to use it as # soon as it is available (multithreading). connection = Connection( server, settings.USERAUSFALL_LDAP["ADMIN_USER_DN"], settings.USERAUSFALL_LDAP["ADMIN_USER_PASSWORD"], client_strategy=SYNC, auto_bind=True, ) is_success = connection.add( f"cn={username},dc=local", ["simpleSecurityObject", "organizationalRole"], {"userPassword": raw_password}, ) return is_success