[SUCS Devel] [Git][sucs/accountmanager][master] Run code inspection tool against code, fix bugs and style

Imran Hussain imranh at sucs.org
Sun Mar 10 12:17:57 GMT 2019


Imran Hussain pushed to branch master at sucs / accountmanager


Commits:
c13c14cc by Imran Hussain at 2019-03-10T12:17:04Z
Run code inspection tool against code, fix bugs and style

- - - - -


1 changed file:

- sucsam.py


Changes:

=====================================
sucsam.py
=====================================
@@ -12,13 +12,14 @@ from email.mime.multipart import MIMEMultipart
 from email.mime.text import MIMEText
 import ldap
 
+
 def correctPaidUntilStr():
-	#same logic as suapi stuff
+	# same logic as suapi stuff
 	# if it's greater than Sept then year+1
 	# if it's less than Spet then year
-	if (month >= 9):
-		paidyear = year +1
-	elif (month < 8):
+	if month >= 9:
+		paidyear = year + 1
+	elif month < 8:
 		paidyear = year
 	else:
 		print("Something went really wrong")
@@ -35,9 +36,9 @@ def stripFuturePeople(listofpeeps):
 			badpeeps.append(person)
 		else:
 			paidyeararray = person[1].split(' ')
-			if (month >= 9):
+			if month >= 9:
 				paidyear = year + 1
-			elif (month < 8):
+			elif month < 8:
 				paidyear = year
 			else:
 				print("Something went really wrong")
@@ -46,6 +47,7 @@ def stripFuturePeople(listofpeeps):
 				badpeeps.append(person)
 	return badpeeps
 
+
 # ok this needs explaning
 # in comes a list [('user1', 'Sept. 2015'), ('user2', 'Sept. 2014')]
 # we need to work out what account type it is,
@@ -62,12 +64,11 @@ def sendReminderEmail(listofpeeps):
 		username = DBdata[0][1]
 		realname = DBdata[0][2]
 		email = DBdata[0][3]
-		type = DBdata[0][7]
+		acctype = DBdata[0][7]
 		adminname = pwd.getpwuid(os.geteuid())[0]
 
-		if os.path.isfile(str(type)+"-email"):
-			#file = open(str(type)+"-email","r")
-			file = codecs.open(str(type)+"-email", encoding='utf-8')
+		if os.path.isfile(str(acctype) + "-email"):
+			file = codecs.open(str(acctype) + "-email", encoding='utf-8')
 			data = file.read()
 			file.close()
 			data = data.replace("{$realname}",realname)
@@ -88,12 +89,13 @@ def sendReminderEmail(listofpeeps):
 			smtpConn = smtplib.SMTP('localhost')
 			smtpConn.sendmail(sender, receiver, message.as_string())
 			smtpConn.quit()
-			if debugmode > 0: #only send out one email instead of 85464684164864165
+			if debugmode > 0:  # only send out one email instead of 85464684164864165
 				sys.exit(0)
 		else:
 			print("Renewal email template not found!")
 			sys.exit(4)
 
+
 def mainMenu():
 	print("\nPlease choose an option")
 	print("[h] Diplay some help")
@@ -106,22 +108,22 @@ def mainMenu():
 	option = input("Option: ")
 	print("\n")
 	
-	if (option == "h"):
+	if option == "h":
 		print("help text comming soon")
 		mainMenu()
-	elif (option == "q"):
+	elif option == "q":
 		DBconn.close()
 		sys.exit(0)
-	elif (option == "qs"):
+	elif option == "qs":
 		quickStats()
 		mainMenu()
-	elif (option == "la"):
+	elif option == "la":
 		listUsers()
 		mainMenu()
-	elif (option == "r"):
+	elif option == "r":
 		reminderMenu()
 		mainMenu()
-	elif (option == "d"):
+	elif option == "d":
 		deleteAccounts()
 		mainMenu()
 	else:
@@ -170,9 +172,9 @@ def listUsers():
 
 
 def emailDeletedUser(userDBinfo):
-	username = userDBdata[0][1]
-	realname = userDBdata[0][2]
-	email = userDBdata[0][3]
+	username = userDBinfo[0][1]
+	realname = userDBinfo[0][2]
+	email = userDBinfo[0][3]
 	adminname = pwd.getpwuid(os.geteuid())[0]
 
 	file = codecs.open("deleted-email", encoding='utf-8')
@@ -204,11 +206,11 @@ def emailAdminDeleteUser(username):
 	data = data.replace("{$username}",username)
 	data = data.replace("{$adminname}",adminname)
 	sender = 'staff at sucs.org'
-	receiver = email
+	receiver = "logs at sucs.org"
 	message = MIMEMultipart()
 	message['From'] = sender
-	message['To'] = "logs at sucs.org"
-	message['Subject'] = username +'\'s SUCS account has been deleted'
+	message['To'] = receiver
+	message['Subject'] = username + '\'s SUCS account has been deleted'
 	messageBody = MIMEText(data, 'plain', "UTF-8")
 	message.attach(messageBody)
 
@@ -219,85 +221,85 @@ def emailAdminDeleteUser(username):
 
 def deleteUser(peopleList):
 
-	#get fs ready
+	# get fs ready
 	basedir = "/home/deleted"
 	mboxdir = "/var/mail/"
-	subprocess.call(['sudo', 'mkdir', "-m", "700", directory])
+	subprocess.call(['sudo', 'mkdir', "-m", "700", basedir])
 
 	for person in peopleList:
-		#get all their info from the db
+		# get all their info from the db
 		cur = DBconn.cursor()
 		cur.execute("SELECT * from members WHERE username=%(user)s",{"user" : person[0]})
 		userDBinfo = cur.fetchall()
 		cur.close()
 		
-		#get all their info from the ldap
+		# get all their info from the ldap
 		userLDAPinfo = ldapconn.search_s(ldap_base,ldap.SCOPE_SUBTREE,"uid="+str(person[0]))
 
-		#declare some easy to use vars
+		# declare some easy to use vars
 		username = str(person[0])
 		persondir = basedir+"/"+username
 
-		#make the dir to store their stuff
+		# make the dir to store their stuff
 		subprocess.call(["sudo", "mkdir", persondir])
 
-		#kill all their procs
+		# kill all their procs
 		subprocess.call(["sudo", "pkill", "-u", username])
 
-		#backup their ldap entry
-		#sudo ldapsearch -x -D "cn=Manager,dc=sucs,dc=org" -y /etc/ldap.secret  "(uid=imranh)"
+		# backup their ldap entry
+		# sudo ldapsearch -x -D "cn=Manager,dc=sucs,dc=org" -y /etc/ldap.secret  "(uid=imranh)"
 		ldapbackupfile = open("./ldap-ldif", "w")
 		subprocess.call(["sudo", "ldapsearch", "-x", "-D", ldap_manager, "-y", ldap_manager_pass, "-L", "(uid="+username+")"], stdout=ldapbackupfile)
 		ldapbackupfile.close()
 		subprocess.call(['sudo', 'mv', "-f", "./ldap-ldif", persondir+"/ldap-ldif"])
 
-		#delete them from ldap
-		#ldapconn.delete_s(ldap_base,ldap.SCOPE_SUBTREE,"uid="+str(person[0]))
-		#sudo ldapdelete -D "cn=Manager,dc=sucs,dc=org" -y /etc/ldap.secret "uid=imran,ou=people,dc=sucs,dc=org"
+		# delete them from ldap
+		# ldapconn.delete_s(ldap_base,ldap.SCOPE_SUBTREE,"uid="+str(person[0]))
+		# sudo ldapdelete -D "cn=Manager,dc=sucs,dc=org" -y /etc/ldap.secret "uid=imran,ou=people,dc=sucs,dc=org"
 		subprocess.call(["sudo", "ldapdelete", "-D", ldap_manager, "-y", ldap_manager_pass, userLDAPinfo[0][0]])
 
-		#move their homedir to the deleted folder
+		# move their homedir to the deleted folder
 		subprocess.call(['sudo', 'mv', "-f", userLDAPinfo[0][1]["homeDirectory"][0], persondir+"/homedir"])
 
-		#move their mail to the deleted folder
+		# move their mail to the deleted folder
 		subprocess.call(['sudo', 'mv', "-f", mboxdir+username, persondir+"/mbox"])
 
-		#remove them from the printer
-		#pkusers --delete imranh		
+		# remove them from the printer
+		# pkusers --delete imranh
 		subprocess.call(['sudo', 'pkusers', "--delete", username])
 
-		#remove from mailing lists
-		#/usr/lib/mailman/bin/remove_members members imranh at sucs.org
-		#/usr/lib/mailman/bin/remove_members users imranh at sucs.org
-		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "members", userLDAPinfo[0][1]["mail"][0]]) #sucs email
-		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "members", userDBinfo[0][3]]) #main email
-		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "members", userDBinfo[0][6]+"@swan.ac.uk"]) # iss email
-		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "users", userLDAPinfo[0][1]["mail"][0]]) #sucs email
-		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "users", userDBinfo[0][3]]) #main email
-		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "users", userDBinfo[0][6]+"@swan.ac.uk"]) # iss email
-
-		#time to delete them from the db :(
+		# remove from mailing lists
+		# /usr/lib/mailman/bin/remove_members members imranh at sucs.org
+		# /usr/lib/mailman/bin/remove_members users imranh at sucs.org
+		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "members", userLDAPinfo[0][1]["mail"][0]])  # sucs email
+		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "members", userDBinfo[0][3]])  # main email
+		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "members", userDBinfo[0][6]+"@swan.ac.uk"])  # iss email
+		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "users", userLDAPinfo[0][1]["mail"][0]])  # sucs email
+		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "users", userDBinfo[0][3]])  # main email
+		subprocess.call(['sudo', '/usr/lib/mailman/bin/remove_members', "users", userDBinfo[0][6]+"@swan.ac.uk"])  # iss email
+
+		# time to delete them from the db :(
 		cur = DBconn.cursor()
-		#delete from doorcards first
+		# delete from doorcards first
 		cur.execute("DELETE FROM doorcards WHERE uid=%(uid)s",{"uid" : userDBinfo[0][0]})
-		#delete from members table
+		# delete from members table
 		cur.execute("DELETE FROM members WHERE username=%(user)s",{"user" : person[0]})
-		#add their some details to the oldmembers table
+		# add their some details to the oldmembers table
 		cur.execute("INSERT into oldmembers (username,realname) VALUES (%(user)s,%(realname)s)",{"user" : username,"realname" : userDBinfo[0][2]})
 		DBconn.commit()
 		cur.close()
 
-		#notify people
-		#them
+		# notify people
+		# them
 		emailDeletedUser(userDBinfo)
-		#logs@
+		# logs@
 		emailAdminDeleteUser(person[0])
 		
-		#remove the entry from the list
-		peoplelist.remove(person)
+		# remove the entry from the list
+		peopleList.remove(person)
 		
-	#return to the deletemenu with an empty list as we've just deleted everyone
-	deleteMenu(peoplelist)
+	# return to the deletemenu with an empty list as we've just deleted everyone
+	deleteMenu(peopleList)
 
 
 def reminderMenu():
@@ -311,24 +313,25 @@ def reminderMenu():
 
 	option = input("Option: ")
 
-	if (option == "1"):
+	if option == "1":
 		for student in studentsBad:
-			print(str(student[0]) + " because the DB says: " + str(student[1]) )
+			print(str(student[0]) + " because the DB says: " + str(student[1]))
 		for soc in societiesBad:
-			print(str(soc[0]) + " because the DB says: " + str(soc[1]) )
+			print(str(soc[0]) + " because the DB says: " + str(soc[1]))
 		for ass in associatesBad:
-			print(str(ass[0]) + " because the DB says: " + str(ass[1]) )
+			print(str(ass[0]) + " because the DB says: " + str(ass[1]))
 		reminderMenu()
-	if (option == "2"):
+	if option == "2":
 		sendReminderEmail(studentsBad)
 		sendReminderEmail(societiesBad)
 		sendReminderEmail(associatesBad)
-	if (option == "2.1"):
+	if option == "2.1":
 		sendReminderEmail(studentsBad)
-	if (option == "0"):
+	if option == "0":
 		mainMenu()
 	else:
-		reminderMenu()	
+		reminderMenu()
+
 
 def deleteMenu(deleteArray):
 	print("")
@@ -341,15 +344,15 @@ def deleteMenu(deleteArray):
 	
 	option = input("Option: ")
 
-	if (option == "1"):
+	if option == "1":
 		print("\nThe following users will be deleted: ")
 		for user in deleteArray:
 			print(user)
 		deleteMenu(deleteArray)
-	elif (option == "2"):
+	elif option == "2":
 		print("Enter a username to add or remoeve it from the list.")
 		user = input("Username: ")
-		if (user in deleteArray):
+		if user in deleteArray:
 			deleteArray.remove(user)
 			print(str(user) + " won't be deleted.")
 		else:
@@ -360,39 +363,41 @@ def deleteMenu(deleteArray):
 			except KeyError:
 				print("\x1b[1;31mInvalid user.\x1b[0m")
 		deleteMenu(deleteArray)
-	elif (option == "3"):
+	elif option == "3":
 		for student in studentsBad:
-			print("Adding " + str(student[0]) + " to the list because the DB says: " + str(student[1]) )
+			print("Adding " + str(student[0]) + " to the list because the DB says: " + str(student[1]))
 			deleteArray.append(student[0])
 		for soc in societiesBad:
-			print("Adding " + str(soc[0]) + " to the list because the DB says: " + str(soc[1]) )
+			print("Adding " + str(soc[0]) + " to the list because the DB says: " + str(soc[1]))
 			deleteArray.append(soc[0])
 		for ass in associatesBad:
-			print("Adding " + str(ass[0]) + " to the list because the DB says: " + str(ass[1]) )
+			print("Adding " + str(ass[0]) + " to the list because the DB says: " + str(ass[1]))
 			deleteArray.append(ass[0])
 		deleteMenu(deleteArray)
-	elif (option == "3.1"):
+	elif option == "3.1":
 		for student in studentsBad:
-			print("Adding " + str(student[0]) + " to the list because the DB says: " + str(student[1]) )
+			print("Adding " + str(student[0]) + " to the list because the DB says: " + str(student[1]))
 			deleteArray.append(student[0])
-	elif (option == "9"):
+	elif option == "9":
 		print("Nope not yet")
 		deleteMenu(deleteArray)
-	elif (option == "0"):
+	elif option == "0":
 		mainMenu()
 	else:
 		deleteMenu(deleteArray)
 
+
 def deleteAccounts():
-	#list that store usernames to be deleted
-	#gets reset everytime you go into this bit on purpose
+	# list that store usernames to be deleted
+	# gets reset everytime you go into this bit on purpose
 	tobedeleted = []
 
 	deleteMenu(tobedeleted)
 
 ### MAIN ###
 
-if (os.geteuid() == 0):
+
+if os.geteuid() == 0:
 	print("\x1b[1;31mDon't run this as root!\x1b[0m")
 	sys.exit(1)
 
@@ -401,21 +406,21 @@ now = datetime.datetime.now()
 year = now.year
 month = now.month
 
-#This tool was written for python *3* 
-#but doesn't mean we can't support 2 as well :)
+# This tool was written for python *3*
+# but doesn't mean we can't support 2 as well :)
 try:
 	input = raw_input
 except NameError:
 	pass
 
-#try and connect to the db
+# try and connect to the db
 try:
 	DBconn = psycopg2.connect(database="sucs")
 except:
 	print("Can't connect to the SUCS DB, suiciding!")
 	sys.exit(2)
 
-#try and connect to ldap
+# try and connect to ldap
 try:
 	ldapconn = ldap.initialize("ldap://sucs.org")
 	ldapconn.simple_bind_s("","")
@@ -426,7 +431,7 @@ except:
 	print("Can't connect to the SUCS LDAP, suiciding")
 	sys.exit(2)
 
-#store some data from to db to operate on
+# store some data from to db to operate on
 cur = DBconn.cursor()
 
 cur.execute("SELECT username,paid from members WHERE type=1 ORDER BY paid")
@@ -446,4 +451,4 @@ hons = cur.fetchall()
 cur.close()
 
 print("\x1b[33mWelcome to the SUCS Account Manager!\x1b[0m")
-mainMenu()
\ No newline at end of file
+mainMenu()



View it on GitLab: https://projects.sucs.org/sucs/accountmanager/commit/c13c14cc2186e7e5a30ad6d8e38a1f26500f3bcf

-- 
View it on GitLab: https://projects.sucs.org/sucs/accountmanager/commit/c13c14cc2186e7e5a30ad6d8e38a1f26500f3bcf
You're receiving this email because of your account on projects.sucs.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sucs.org/pipermail/devel/attachments/20190310/ddd94df8/attachment-0001.html>


More information about the Devel mailing list