37 lines
1.0 KiB
Python
37 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)
|
|
|