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)

