-
Committer:
mattgiuca
-
Date:
2008-02-15 00:39:02 UTC
-
Revision ID:
svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:468
db.py: Epic Refactor.
Replaced all the user management methods with very generic methods that take
dictionaries and will work for any DB table. Essentially this now provides us
with a generic high-level database API.
Then put all the user management methods back in, as simple wrappers to the
generic methods.
The user management methods, however, have all had their interfaces changed.
They now take dictionaries of key:value pairs to be put in the DB instead of
arguments. This serves 2 purposes: firstly, it's MUCH easier to add new fields
now (2 or 3 points of control, down from about 7 points of control). Secondly,
it allows None (NULL in SQL) to be distinguished from omitted fields (this
particularly applies to update_user.
Notes: Preserved some of the changes (the self-closing object) from
r466 [conway]. Most of these have been lost in the refactor, and are no
longer necessary as dicts are now general (do not need to explicitly
specify keys).
I am committing this checkpoint even though it will break makeuser.
Need to make major changes to that anyway, so it might as well be broken
for the time being.