diff templates/minimal/detectors/userauditor.py @ 3874:4c8d853017f2

strip rolename & fix rolename unittest - strip the rolename earlier in processing so we handle pure-whitespace - change modeline per alex's suggestion - add unittest for all-white space roles - somehow I managed to check in a broken unittest previously. add in the user lookup so it works.
author Justus Pendleton <jpend@users.sourceforge.net>
date Fri, 31 Aug 2007 17:45:17 +0000
parents 4d1928ce993e
children 4fcf7a52767e
line wrap: on
line diff
--- a/templates/minimal/detectors/userauditor.py	Fri Aug 31 15:57:47 2007 +0000
+++ b/templates/minimal/detectors/userauditor.py	Fri Aug 31 17:45:17 2007 +0000
@@ -18,7 +18,7 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 #
-#$Id: userauditor.py,v 1.4 2007-08-31 15:57:47 jpend Exp $
+#$Id: userauditor.py,v 1.5 2007-08-31 17:45:17 jpend Exp $
 
 def audit_user_fields(db, cl, nodeid, newvalues):
     ''' Make sure user properties are valid.
@@ -30,8 +30,8 @@
     if newvalues.has_key('address') and ' ' in newvalues['address']:
         raise ValueError, 'Email address must not contain spaces'
 
-    for rolename in newvalues.get('roles', '').split(','):
-            if rolename and not db.security.role.has_key(rolename.lower().strip()):
+    for rolename in [r.lower().strip() for r in newvalues.get('roles', '').split(',')]:
+            if rolename and not db.security.role.has_key(rolename):
                 raise ValueError, 'Role "%s" does not exist'%rolename
 
     if newvalues.has_key('timezone'):
@@ -54,4 +54,4 @@
     db.user.audit('set', audit_user_fields)
     db.user.audit('create', audit_user_fields)
 
-# vim: filetype=python ts=4 sw=4 et si
+# vim: sts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/