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

« back to all changes in this revision

Viewing changes to lib/common/db.py

  • Committer: mattgiuca
  • Date: 2008-02-14 05:58:03 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:462
userdb/users.sql: Added email field to login.
Propagated the email field through: listusers, makeuser, common.makeuser,
    common.db.

Show diffs side-by-side

added added

removed removed

Lines of Context:
79
79
 
80
80
    # USER MANAGEMENT FUNCTIONS #
81
81
 
82
 
    def create_user(self, login, unixid, password, nick, fullname, rolenm,
83
 
        studentid, dry=False):
 
82
    def create_user(self, login, password, unixid, email, nick, fullname,
 
83
        rolenm, studentid, dry=False):
84
84
        """Creates a user login entry in the database.
85
85
        Arguments are the same as those in the "login" table of the schema.
86
86
        The exception is "password", which is a cleartext password. makeuser
90
90
        Raises an exception if the user already exists.
91
91
        """
92
92
        passhash = _passhash(password)
93
 
        query = ("INSERT INTO login (login, passhash, state, unixid, nick, "
94
 
            "fullname, rolenm, studentid) VALUES "
95
 
            "(%s, %s, 'no_agreement', %d, %s, %s, %s, %s);" %
96
 
            (_escape(login), _escape(passhash), unixid, _escape(nick),
97
 
            _escape(fullname), _escape(rolenm), _escape(studentid)))
 
93
        query = ("INSERT INTO login (login, passhash, state, unixid, email, "
 
94
            "nick, fullname, rolenm, studentid) VALUES "
 
95
            "(%s, %s, 'no_agreement', %d, %s, %s, %s, %s, %s);" %
 
96
            (_escape(login), _escape(passhash), unixid, _escape(email),
 
97
            _escape(nick), _escape(fullname), _escape(rolenm),
 
98
            _escape(studentid)))
98
99
        if dry: return query
99
100
        self.db.query(query)
100
101
 
101
 
    def update_user(self, login, password=None, state=None, nick=None,
102
 
        fullname=None, rolenm=None, dry=False):
 
102
    def update_user(self, login, password=None, state=None, email=None,
 
103
        nick=None, fullname=None, rolenm=None, dry=False):
103
104
        """Updates fields of a particular user. login is the name of the user
104
105
        to update. The other arguments are optional fields which may be
105
106
        modified. If None or omitted, they do not get modified. login and
118
119
            setlist.append("passhash = " + _escape(_passhash(password)))
119
120
        if state is not None:
120
121
            setlist.append("state = " + _escape(state))
 
122
        if email is not None:
 
123
            setlist.append("email = " + _escape(email))
121
124
        if nick is not None:
122
125
            setlist.append("nick = " + _escape(nick))
123
126
        if fullname is not None:
146
149
 
147
150
        Raises a DBException if the login is not found in the DB.
148
151
        """
149
 
        query = ("SELECT login, state, unixid, nick, fullname, rolenm, "
150
 
            "studentid FROM login WHERE login = %s;" % _escape(login))
 
152
        query = ("SELECT login, state, unixid, email, nick, fullname, "
 
153
            "rolenm, studentid FROM login WHERE login = %s;" % _escape(login))
151
154
        if dry: return query
152
155
        result = self.db.query(query)
153
156
        # Expecting exactly one
162
165
        """Returns a list of all users. The list elements are a dictionary of
163
166
        the user's DB fields, excluding the passhash field.
164
167
        """
165
 
        query = ("SELECT login, state, unixid, nick, fullname, rolenm, "
166
 
            "studentid FROM login")
 
168
        query = ("SELECT login, state, unixid, email, nick, fullname, "
 
169
            "rolenm, studentid FROM login")
167
170
        if dry: return query
168
171
        return self.db.query(query).dictresult()
169
172