~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to lib/common/makeuser.py

  • Committer: mattgiuca
  • Date: 2008-02-15 04:45:12 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:472
db.py: No longer exceptions if password is not supplied.
makeuser: Converted explicit args into kwargs which are simply forwarded along
    to db. Makeuser db NO LONGER accepts "force" argument (which used to
    delete and replace login rows). This is dangerous, and we have removed the
    delete user functionality altogether - because we never delete users.
makeuser.py (script): Major change. Replaced the command-line interface so it
    now only takes 3 required arguments, and a bunch of optional arguments
    getopts style.
    All the arguments are specified at the top; the rest of the code works
    with these data structures so they are only specified in one place
    (including all the work of putting them into a dict and passing it to the
    database).
    Note that makeuser.py is a *second* point of control for the list of the
    login fields (the other is in db.DB.login_fields_list). This is by design,
    because there is a semantic difference between "what fields are in the db"
    and "what arguments should we accept on the command line".

Show diffs side-by-side

added added

removed removed

Lines of Context:
237
237
    if errors:
238
238
        raise Exception, errors
239
239
 
240
 
def make_user_db(login, password, uid, email, nick, fullname, rolenm,
241
 
    studentid, force=True):
 
240
def make_user_db(**kwargs):
242
241
    """Creates a user's entry in the database, filling in all the fields.
243
 
    If force is False, throws an exception if the user already exists.
244
 
    If True, overwrites the user's entry in the DB.
 
242
    All arguments must be keyword args. They are the fields in the table.
 
243
    However, instead of supplying a "passhash", you must supply a
 
244
    "password" argument, which will be hashed internally.
 
245
    Also do not supply a state. All users are created in the "no_agreement"
 
246
    state.
 
247
    Throws an exception if the user already exists.
245
248
    """
246
249
    dbconn = db.DB()
247
 
    if force:
248
 
        # Delete user if it exists
249
 
        try:
250
 
            dbconn.delete_user(login)
251
 
        except:
252
 
            pass
253
 
    dbconn.create_user(login, password, uid, email, nick, fullname, rolenm,
254
 
        studentid)
 
250
    dbconn.create_user(**kwargs)
255
251
    dbconn.close()