ipv6-dot-work/users/ldap_funcs.py

28 lines
868 B
Python

from django.conf import settings
from ldap3 import Server, ServerPool, Connection, ObjectDef, AttrDef, Reader, Writer
server = Server(settings.AUTH_LDAP_SERVER_URI)
def create_user(user, password, firstname, lastname, email):
conn = Connection(server, settings.AUTH_LDAP_BIND_DN,
settings.AUTH_LDAP_BIND_PASSWORD)
if not conn.bind():
raise Exception('Could not connect to LDAP Server')
obj_new_user = ObjectDef(
['inetOrgPerson'], conn)
w = Writer(conn, obj_new_user)
dn = 'uid=%s,ou=users,dc=example,dc=com' % user
w.new(dn)
w[0].givenName = firstname
w[0].sn = lastname
w[0].cn = firstname + " " + lastname
w[0].mail = email
w[0].userPassword = password
if not w.commit():
conn.unbind()
raise Exception("Couldn't write user")
conn.unbind()
return True