forked from CMS/memberPlumbing
Fix indentation, update props, allow for updating existing accounts
should have split these up, but messed up indentation, and too lazy to fix right now
This commit is contained in:
parent
4b5040599c
commit
cec414ca36
31
ucsAccounts.py
Normal file → Executable file
31
ucsAccounts.py
Normal file → Executable file
@ -8,17 +8,23 @@ from common import *
|
||||
LDAP_BASE = "cn=users,dc=sawtooth,dc=claremontmakerspace,dc=org"
|
||||
RAND_PW_LEN = 20
|
||||
|
||||
def makeSets(props):
|
||||
return sum([["--set", key + "=" + value]
|
||||
for key, value in props.items()], [])
|
||||
|
||||
def main():
|
||||
members = getMembershipworksData("lvl,phn,eml,lbl,nam,end,_id")
|
||||
|
||||
for member in members:
|
||||
randomPass = ''.join(random.choice(string.ascii_letters + string.digits)
|
||||
for x in range(0, RAND_PW_LEN))
|
||||
username = member["Account Name"].lower().replace(" ", ".")
|
||||
|
||||
props = {
|
||||
"title": "", # Title
|
||||
"firstname": member["First Name"],
|
||||
"lastname": member["Last Name"], # (c)
|
||||
"username": member["Account Name"].lower().replace(" ", "."), # (cmr)
|
||||
"username": username, # (cmr)
|
||||
"description": "", # Description
|
||||
"password": randomPass, # (c) Password
|
||||
#"mailPrimaryAddress": member["Email"], # Primary e-mail address
|
||||
@ -31,6 +37,10 @@ def main():
|
||||
|
||||
#"groups": "", # Groups
|
||||
|
||||
"homedrive": "H:", # Windows home drive
|
||||
"sambahome": "\\\\ucs\\" + username, # Windows home path
|
||||
"profilepath": "%LOGONSERVER%\\%USERNAME%\\windows-profiles\\default", # Windows profile directory
|
||||
|
||||
"disabled": "1" if member["Account on Hold"] != "" else "0",
|
||||
#"userexpiry": member["Renewal Date"],
|
||||
|
||||
@ -44,19 +54,16 @@ def main():
|
||||
"PasswordRecoveryEmail": member["Email"]
|
||||
}
|
||||
|
||||
propSets = sum([["--set", key + "=" + value]
|
||||
for key, value in props.items()], [])
|
||||
subprocess.call(["udm", "users/user", "create",
|
||||
"--position", LDAP_BASE] + makeSets(props))
|
||||
|
||||
# remove props we don't want to reset
|
||||
props.pop("password")
|
||||
props.pop("pwdChangeNextLogin")
|
||||
|
||||
cmd = ["udm", "users/user", "create",
|
||||
"--position", LDAP_BASE] + propSets
|
||||
|
||||
subprocess.call(cmd)
|
||||
|
||||
# props = {
|
||||
# 'Name': ,
|
||||
# 'Renewal Date': member['Renewal Date'],
|
||||
# 'Account on Hold': "Yes" if member['Account on Hold'] != '' else "No" }
|
||||
subprocess.call(["udm", "users/user", "modify",
|
||||
"--dn", "uid=" + username + "," + LDAP_BASE]
|
||||
+ makeSets(props))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user