Mercurial > p > roundup > code
diff templates/minimal/detectors/userauditor.py @ 3888:4fcf7a52767e
fix [SF#611787]: ensure unique email addresses
enhance userauditor to make sure the email address is unique in the
tracker.
add a unittest for it.
| author | Justus Pendleton <jpend@users.sourceforge.net> |
|---|---|
| date | Thu, 06 Sep 2007 16:52:20 +0000 |
| parents | 4c8d853017f2 |
| children | fa611c224895 |
line wrap: on
line diff
--- a/templates/minimal/detectors/userauditor.py Wed Sep 05 18:46:39 2007 +0000 +++ b/templates/minimal/detectors/userauditor.py Thu Sep 06 16:52:20 2007 +0000 @@ -18,17 +18,23 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # -#$Id: userauditor.py,v 1.5 2007-08-31 17:45:17 jpend Exp $ +#$Id: userauditor.py,v 1.6 2007-09-06 16:52:20 jpend Exp $ def audit_user_fields(db, cl, nodeid, newvalues): ''' Make sure user properties are valid. - email address has no spaces in it + - email address is unique - roles specified exist - timezone is valid ''' - if newvalues.has_key('address') and ' ' in newvalues['address']: - raise ValueError, 'Email address must not contain spaces' + if newvalues.has_key('address'): + address = newvalues['address'] + if ' ' in address: + raise ValueError, 'Email address must not contain spaces' + user = db.user.stringFind(address=address) + if len(user): + raise ValueError, 'Email address already in use' for rolename in [r.lower().strip() for r in newvalues.get('roles', '').split(',')]: if rolename and not db.security.role.has_key(rolename):
