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)