diff --git a/README.md b/README.md new file mode 100644 index 0000000..bb577f8 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Usage +```shell +$ python3 main.py "ldaps://rsw011.beuth-hochschule.de" "xxxxxxxx@beuth-hochschule.de" "********" +``` diff --git a/main.py b/main.py index fb7b284..dde9468 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,8 @@ import ldap import toml import sys - +import secrets +import string def init_ldap(server, user, pw): con = ldap.initialize(server) @@ -14,6 +15,22 @@ if __name__ == '__main__': 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)', - ['cn']) + 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) +