c3af81c10376b582da1376953bf39961094b887e
[public/pyceo-broken.git] / src / op-mailman
1 #!/usr/bin/python
2
3 import os, syslog
4 from subprocess import Popen, PIPE, STDOUT
5 from ceo.ops import get_ceo_user, check_group
6
7 def main():
8     remote_user = get_ceo_user()
9     user_to_add = raw_input()
10     
11     if remote_user == user_to_add or check_group(remote_user, 'office') or check_group(remote_user, 'syscom'):
12         mailman = Popen(["/var/lib/vmailman/csclub/bin/add_members", "-r", "-", "csc-general"],
13                         stdin=PIPE, stdout=PIPE, stderr=STDOUT)
14         out, err = mailman.communicate("%s@csclub.uwaterloo.ca\n" % user_to_add)
15         syslog.syslog(syslog.LOG_INFO, out)
16         print out
17     else:
18         message = "Access denied: user '%s' cannot subscribe users to csc-general" % remote_user
19         syslog.syslog(syslog.LOG_NOTICE, message)
20         print message
21
22 if __name__ == '__main__':
23     syslog.openlog('op-mailman', syslog.LOG_PID, syslog.LOG_DAEMON)
24     main()