--- /dev/null
+#!/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_MESSAGE', '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'] = '/bin:/usr/bin'
+
+for dir in sys.path[:]:
+ if not dir.find('/usr') == 0:
+ while dir in sys.path:
+ sys.path.remove(dir)
+
+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|booklist|allmembers|allusers|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:
+ print "%(memberid)s|%(name)s|%(program)s|%(userid)s" % member
+
+elif sys.argv[1] == 'allmembers':
+
+ members = members.list_all()
+ for member in members:
+ print "%(memberid)s|%(name)s|%(program)s|%(userid)s" % member
+
+elif sys.argv[1] == 'booklist':
+
+ pass
+
+elif sys.argv[1] == 'allusers':
+
+ members = members.list_all()
+ for member in members:
+ if member['userid']:
+ print member['userid']
+
+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:
+ if member['userid']:
+ print member['userid']
+
+else:
+
+ usage()
+
if getent passwd ceo > /dev/null; then
CEO=ceo
SUID=4750
+ SUIDALL=4755
else
CEO=root
SUID=755
+ SUIDALL=755
fi
if getent group office > /dev/null; then
dpkg-statoverride --add --update root $OFFICE $SUID /usr/bin/addhomedir
fi
+ if ! dpkg-statoverride --list /usr/bin/ceoquery > /dev/null; then
+ dpkg-statoverride --add --update $CEO $OFFICE $SUIDALL /usr/bin/ceoquery
+ fi
+
if [ -f /etc/csc/ldap.cf ] && ! dpkg-statoverride --list /etc/csc/ldap.cf > /dev/null; then
dpkg-statoverride --add --update $CEO staff 640 /etc/csc/ldap.cf
fi
dpkg-statoverride --remove /usr/bin/addhomedir || true
fi
+ if dpkg-statoverride --list /usr/bin/ceoquery > /dev/null; then
+ dpkg-statoverride --remove /usr/bin/ceoquery || true
+ fi
+
if dpkg-statoverride --list /etc/csc/ldap.cf > /dev/null; then
dpkg-statoverride --remove /etc/csc/ldap.cf || true
fi
mkdir build
$(CC) -DFULL_PATH='"/usr/lib/csc/ceo"' -o build/ceo misc/setuid-prog.c
$(CC) -DFULL_PATH='"/usr/lib/csc/addhomedir"' -o build/addhomedir misc/setuid-prog.c
+ $(CC) -DFULL_PATH='"/usr/lib/csc/ceoquery"' -o build/ceoquery misc/setuid-prog.c
touch build-stamp
clean:
dh_install etc/* etc/csc/
dh_install sql/* usr/share/csc/
- dh_install bin/ceo bin/addhomedir usr/lib/csc/
- dh_install build/ceo build/addhomedir usr/bin/
+ dh_install bin/ceo bin/addhomedir bin/ceoquery usr/lib/csc/
+ dh_install build/ceo build/addhomedir build/ceoquery usr/bin/
binary-arch: build install
dh_testdir