From d62f80ca6558e8739d510ad11854f9eb852ceedc Mon Sep 17 00:00:00 2001
From: Zack Wong <coffee@ucc.asn.au>
Date: Sat, 16 Feb 2019 13:13:30 +0800
Subject: [PATCH] add user home creation

---
 src/memberdb/root_actions.py | 47 ++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 src/memberdb/root_actions.py

diff --git a/src/memberdb/root_actions.py b/src/memberdb/root_actions.py
new file mode 100644
index 0000000..411fafd
--- /dev/null
+++ b/src/memberdb/root_actions.py
@@ -0,0 +1,47 @@
+import sys
+import os
+import shutil
+## WARNING ##
+# this script runs with elevated permissions #
+
+def main():
+
+	os.umask(0o077)
+	
+	if len(sys.argv) != 2:
+		return
+	user = sys.argv[0]
+	mail = sys.argv[1]
+
+	homes = {
+		('/home/ucc/%s' % user, '/home/wheel/bin/skel/ucc'),
+		('/away/ucc/%s' % user, '/home/wheel/bin/skel/away')
+	}
+
+	try:
+		for home,skel in homes:
+			shutil.copytree(skel,home,copy_function=copy)
+			os.system('chown -R %s:gumby %s' % (user, home))
+
+
+	except:
+		exit(1)	
+
+	home = homes[0][0]
+	# set world writable (for webpage)
+	os.system('chmod a+x %s' % home)
+	os.system('chmod a+rX %s/public-html' % home)
+
+
+	if (mailaddr != ""):
+		forward = '%s/.forward' % home
+		f = open(forward,"w")
+		f.write(mailaddr)
+		f.close()
+		shutil.chown(forward,user,"gumby")
+		os.chmod(forward, 0o644)
+
+
+	
+	
+
-- 
GitLab