ldapbodge/main.py

38 lines
1.0 KiB
Python

import ldap
import toml
import sys
import secrets
import string
def init_ldap(server, user, pw):
con = ldap.initialize(server)
con.simple_bind_s(user, pw)
return con
if __name__ == '__main__':
server = sys.argv[1]
user = sys.argv[2]
pw = sys.argv[3]
con = init_ldap(server, user, pw)
result = con.search_s('dc=beuth-hochschule,dc=de',
ldap.SCOPE_SUBTREE,
'(|(title=Mechatronik Bachelor)(title=Mechatronik Master))',
['uid'])
mtnrs = [matnr[1]['uid'][0].decode("utf-8") for matnr in result[:-3]]
pw = []
for i in range(len(mtnrs)):
alphabet = string.ascii_lowercase + string.digits
password = ''.join(secrets.choice(alphabet) for i in range(8))
userdict = dict()
userdict["passwd"] = password
userdict["roles"] = ["default/internal", "open/internal"]
userdict["priority"] = 0
pw.append(userdict)
with open("users.toml", "w") as f:
toml.dump(dict(zip(mtnrs, pw)), f)