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"
|
LDAP_BASE = "cn=users,dc=sawtooth,dc=claremontmakerspace,dc=org"
|
||||||
RAND_PW_LEN = 20
|
RAND_PW_LEN = 20
|
||||||
|
|
||||||
|
def makeSets(props):
|
||||||
|
return sum([["--set", key + "=" + value]
|
||||||
|
for key, value in props.items()], [])
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
members = getMembershipworksData("lvl,phn,eml,lbl,nam,end,_id")
|
members = getMembershipworksData("lvl,phn,eml,lbl,nam,end,_id")
|
||||||
|
|
||||||
for member in members:
|
for member in members:
|
||||||
randomPass = ''.join(random.choice(string.ascii_letters + string.digits)
|
randomPass = ''.join(random.choice(string.ascii_letters + string.digits)
|
||||||
for x in range(0, RAND_PW_LEN))
|
for x in range(0, RAND_PW_LEN))
|
||||||
|
username = member["Account Name"].lower().replace(" ", ".")
|
||||||
|
|
||||||
props = {
|
props = {
|
||||||
"title": "", # Title
|
"title": "", # Title
|
||||||
"firstname": member["First Name"],
|
"firstname": member["First Name"],
|
||||||
"lastname": member["Last Name"], # (c)
|
"lastname": member["Last Name"], # (c)
|
||||||
"username": member["Account Name"].lower().replace(" ", "."), # (cmr)
|
"username": username, # (cmr)
|
||||||
"description": "", # Description
|
"description": "", # Description
|
||||||
"password": randomPass, # (c) Password
|
"password": randomPass, # (c) Password
|
||||||
#"mailPrimaryAddress": member["Email"], # Primary e-mail address
|
#"mailPrimaryAddress": member["Email"], # Primary e-mail address
|
||||||
@ -31,6 +37,10 @@ def main():
|
|||||||
|
|
||||||
#"groups": "", # Groups
|
#"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",
|
"disabled": "1" if member["Account on Hold"] != "" else "0",
|
||||||
#"userexpiry": member["Renewal Date"],
|
#"userexpiry": member["Renewal Date"],
|
||||||
|
|
||||||
@ -44,19 +54,16 @@ def main():
|
|||||||
"PasswordRecoveryEmail": member["Email"]
|
"PasswordRecoveryEmail": member["Email"]
|
||||||
}
|
}
|
||||||
|
|
||||||
propSets = sum([["--set", key + "=" + value]
|
subprocess.call(["udm", "users/user", "create",
|
||||||
for key, value in props.items()], [])
|
"--position", LDAP_BASE] + makeSets(props))
|
||||||
|
|
||||||
|
# remove props we don't want to reset
|
||||||
|
props.pop("password")
|
||||||
|
props.pop("pwdChangeNextLogin")
|
||||||
|
|
||||||
cmd = ["udm", "users/user", "create",
|
subprocess.call(["udm", "users/user", "modify",
|
||||||
"--position", LDAP_BASE] + propSets
|
"--dn", "uid=" + username + "," + LDAP_BASE]
|
||||||
|
+ makeSets(props))
|
||||||
subprocess.call(cmd)
|
|
||||||
|
|
||||||
# props = {
|
|
||||||
# 'Name': ,
|
|
||||||
# 'Renewal Date': member['Renewal Date'],
|
|
||||||
# 'Account on Hold': "Yes" if member['Account on Hold'] != '' else "No" }
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user