ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/ccs/admin/adduser.py
Revision: 681
Committed: 2010-07-13T02:19:33-07:00 (14 years, 11 months ago) by douglas
Content type: text/x-python
File size: 1324 byte(s)
Log Message:
Add mksh to available shells; options with argparse (not sure if I like it).

File Contents

# User Rev Content
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 680 import MySQLdb
13 douglas 598 import psycopg2
14     import users
15 douglas 587
16     if __name__ == '__main__':
17 douglas 681 parser = admin.parser(description = 'Add a new CCS CS Lab user')
18    
19     parser.add_argument('-u', '--user', default = '', help = 'set the user name to USER')
20     parser.add_argument('-n', '--name', default = '', help = 'set the full name to NAME')
21    
22     args = parser.parse_args()
23    
24 douglas 587 try:
25 douglas 681 user = args.user
26 douglas 587
27 douglas 681 while admin.USER.match(user) is None:
28     if args.user:
29     admin.error(admin.INVALID_USER % user)
30     elif user:
31     admin.warn(admin.INVALID_USER % user)
32    
33 douglas 598 user = raw_input('User Name: ')
34 douglas 597
35 douglas 598 if users.user(user):
36 douglas 681 admin.error('User exists: "%s"' % user)
37 douglas 587
38 douglas 681 name = args.name
39 douglas 593
40 douglas 681 while admin.NAME.match(name) is None:
41     if args.name:
42     admin.error(admin.INVALID_NAME % name)
43     elif name:
44     admin.warn(admin.INVALID_NAME % name)
45    
46 douglas 598 name = raw_input('Full Name: ')
47    
48     password = common.new_password()
49    
50 douglas 591 if admin.master():
51 douglas 598 admin.adduser(user, name, password)
52    
53     admin.run(common.add_all(user, name, password))
54 douglas 681 except (common.PasswordError, IOError, ldap.LDAPError, OSError, MySQLdb.MySQLError, psycopg2.Error, psycopg2.Warning), error:
55 douglas 593 admin.error(error)
56 douglas 587 except (EOFError, KeyboardInterrupt):
57 douglas 592 admin.eof()

Properties

Name Value
svn:executable *
svn:keywords Id