22 lines
728 B
Python
22 lines
728 B
Python
|
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
|