Make back window of first wizard pane work
[public/pyceo-broken.git] / bin / ceoquery
1 #!/usr/bin/python2.4 --
2 """
3 ceoquery - a script to lookup member and account information
4 """
5 import os, sys
6
7 safe_environment = ['LOGNAME', 'USERNAME', 'USER', 'HOME', 'TERM', 'LANG'
8     'LC_ALL', 'LC_COLLATE', 'LC_CTYPE', 'LC_MESSAGES', 'LC_MONETARY',
9     'LC_NUMERIC', 'LC_TIME', 'UID', 'GID', 'SSH_CONNECTION', 'SSH_AUTH_SOCK',
10     'SSH_CLIENT']
11
12 for key in os.environ.keys():
13     if key not in safe_environment:
14         del os.environ[key]
15
16 os.environ['PATH'] = '/usr/sbin:/usr/bin:/sbin:/bin'
17
18 for pathent in sys.path[:]:
19     if not pathent.find('/usr') == 0:
20         sys.path.remove(pathent)
21
22 euid = os.geteuid()
23 egid = os.getegid()
24 try:
25     os.setreuid(euid, euid)
26     os.setregid(egid, egid)
27 except OSError, e:
28     print str(e)
29     sys.exit(1)
30
31 from csc.adm import members, terms
32
33 try:
34     members.connect()
35 except Exception, e:
36     print "ceoquery: %s" % e
37     sys.exit(1)
38
39 def usage():
40     print "Usage: ceoquery memberlist|termusers"
41
42 if len(sys.argv) < 2:
43     usage()
44
45 elif sys.argv[1] == 'memberlist':
46     
47     current_term = terms.current()
48     members = members.list_term(current_term)
49     for member in members.values():
50         if 'program' in member:
51             program = member['program'][0]
52         else:
53             program = ''
54         print "%s|%s|%s" % (member['cn'][0], program, member['uid'][0])
55
56 elif sys.argv[1] == 'allmembers':
57
58     pass
59
60 elif sys.argv[1] == 'booklist':
61
62     pass
63
64 elif sys.argv[1] == 'allusers':
65
66     pass
67
68 elif sys.argv[1] == 'termusers':
69
70     if len(sys.argv) > 2:
71         term = sys.argv[2]
72     else:
73         term = terms.current()
74
75     members = members.list_term(term)
76     for member in members:
77         print member
78
79 else:
80
81     usage()
82