ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/ccs/admin/adduser.py
Revision: 687
Committed: 2010-07-18T03:39:30-07:00 (14 years, 11 months ago) by douglas
Content type: text/x-python
File size: 1330 byte(s)
Log Message:
Use optparse instead of argparse. Man pages!

File Contents

# User Rev Content
1 douglas 587 #!/usr/bin/env python
2     # CCS Computer Science
3 douglas 687 # Add User
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 douglas 687 parser.add_option('-u', '--user', default = '', help = 'set the user name to USER')
20     parser.add_option('-n', '--name', default = '', help = 'set the full name to NAME')
21 douglas 681
22 douglas 687 options = parser.parse_args()[0]
23 douglas 681
24 douglas 587 try:
25 douglas 687 user = options.user
26 douglas 587
27 douglas 681 while admin.USER.match(user) is None:
28 douglas 687 if options.user:
29 douglas 681 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 687 name = options.name
39 douglas 593
40 douglas 681 while admin.NAME.match(name) is None:
41 douglas 687 if options.name:
42 douglas 681 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