1 |
douglas |
587 |
#!/usr/bin/env python |
2 |
|
|
# CCS Computer Science |
3 |
douglas |
592 |
# Change Full Name |
4 |
douglas |
587 |
# |
5 |
|
|
# Douglas Thrift |
6 |
|
|
# |
7 |
|
|
# $Id$ |
8 |
|
|
|
9 |
douglas |
591 |
import admin |
10 |
douglas |
590 |
import common |
11 |
douglas |
593 |
import ldap |
12 |
douglas |
587 |
|
13 |
|
|
if __name__ == '__main__': |
14 |
douglas |
681 |
parser = admin.parser(description = 'Change CCS CS Lab user full name') |
15 |
|
|
|
16 |
douglas |
687 |
parser.add_option('-u', '--user', default = '', help = 'change full name of USER (only works when run as root)') |
17 |
|
|
parser.add_option('-n', '--name', default = '', help = 'set the full name to NAME') |
18 |
douglas |
681 |
|
19 |
douglas |
687 |
options = parser.parse_args()[0] |
20 |
douglas |
681 |
|
21 |
douglas |
587 |
try: |
22 |
douglas |
687 |
user = admin.user(options) |
23 |
|
|
name = options.name |
24 |
douglas |
587 |
|
25 |
douglas |
681 |
while admin.NAME.match(name) is None: |
26 |
douglas |
687 |
if options.name: |
27 |
douglas |
681 |
admin.error(admin.INVALID_NAME % name) |
28 |
|
|
elif name: |
29 |
|
|
admin.warn(admin.INVALID_NAME % name) |
30 |
|
|
|
31 |
douglas |
592 |
name = raw_input('Full Name: ') |
32 |
douglas |
587 |
|
33 |
douglas |
591 |
if admin.master(): |
34 |
douglas |
592 |
admin.chfn(user, name) |
35 |
|
|
|
36 |
|
|
admin.run(common.chfn_all(user, name)) |
37 |
douglas |
681 |
except (IOError, ldap.LDAPError), error: |
38 |
douglas |
593 |
admin.error(error) |
39 |
douglas |
587 |
except (EOFError, KeyboardInterrupt): |
40 |
douglas |
592 |
admin.eof() |