pyceo-broken/bin/ceoquery

83 lines
1.7 KiB
Python
Executable File

#!/usr/bin/python2.4 --
"""
ceoquery - a script to lookup member and account information
"""
import os, sys
safe_environment = ['LOGNAME', 'USERNAME', 'USER', 'HOME', 'TERM', 'LANG'
'LC_ALL', 'LC_COLLATE', 'LC_CTYPE', 'LC_MESSAGES', 'LC_MONETARY',
'LC_NUMERIC', 'LC_TIME', 'UID', 'GID', 'SSH_CONNECTION', 'SSH_AUTH_SOCK',
'SSH_CLIENT']
for key in os.environ.keys():
if key not in safe_environment:
del os.environ[key]
os.environ['PATH'] = '/usr/sbin:/usr/bin:/sbin:/bin'
for pathent in sys.path[:]:
if not pathent.find('/usr') == 0:
sys.path.remove(pathent)
euid = os.geteuid()
egid = os.getegid()
try:
os.setreuid(euid, euid)
os.setregid(egid, egid)
except OSError, e:
print str(e)
sys.exit(1)
from csc.adm import members, terms
try:
members.connect()
except Exception, e:
print "ceoquery: %s" % e
sys.exit(1)
def usage():
print "Usage: ceoquery memberlist|termusers"
if len(sys.argv) < 2:
usage()
elif sys.argv[1] == 'memberlist':
current_term = terms.current()
members = members.list_term(current_term)
for member in members.values():
if 'program' in member:
program = member['program'][0]
else:
program = ''
print "%s|%s|%s" % (member['cn'][0], program, member['uid'][0])
elif sys.argv[1] == 'allmembers':
pass
elif sys.argv[1] == 'booklist':
pass
elif sys.argv[1] == 'allusers':
pass
elif sys.argv[1] == 'termusers':
if len(sys.argv) > 2:
term = sys.argv[2]
else:
term = terms.current()
members = members.list_term(term)
for member in members:
print member
else:
usage()