#!/usr/bin/env python # CCS Computer Science # Change Full Name # # Douglas Thrift # # $Id$ import admin import common import ldap from unidecode import unidecode if __name__ == '__main__': parser = admin.parser(description = 'Change CCS CS Lab user full name') parser.add_option('-u', '--user', default = '', help = 'change full name of USER (only works when run as root)') parser.add_option('-n', '--name', default = '', help = 'set the full name to NAME') options = parser.parse_args()[0] try: user = admin.user(options) name = options.name while admin.NAME.match(name) is None: if options.name: admin.error(admin.INVALID_NAME % name) elif name: admin.warn(admin.INVALID_NAME % name) name = str(unidecode(raw_input('Full Name: ').decode('utf8'))) if admin.master(): admin.chfn(user, name) admin.run(common.chfn_all(user, name)) except (IOError, ldap.LDAPError), error: admin.error(error) except (EOFError, KeyboardInterrupt): admin.eof() # vim: noexpandtab tabstop=4