Skip to content

Commit 069bbf9

Browse files
author
Justus Pendleton
committed
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.
1 parent 577f756 commit 069bbf9

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

templates/classic/detectors/userauditor.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1919
# SOFTWARE.
2020
#
21-
#$Id: userauditor.py,v 1.5 2007-08-31 15:57:47 jpend Exp $
21+
#$Id: userauditor.py,v 1.6 2007-08-31 17:45:16 jpend Exp $
2222

2323
def audit_user_fields(db, cl, nodeid, newvalues):
2424
''' Make sure user properties are valid.
@@ -30,8 +30,8 @@ def audit_user_fields(db, cl, nodeid, newvalues):
3030
if newvalues.has_key('address') and ' ' in newvalues['address']:
3131
raise ValueError, 'Email address must not contain spaces'
3232

33-
for rolename in newvalues.get('roles', '').split(','):
34-
if rolename and not db.security.role.has_key(rolename.lower().strip()):
33+
for rolename in [r.lower().strip() for r in newvalues.get('roles', '').split(',')]:
34+
if rolename and not db.security.role.has_key(rolename):
3535
raise ValueError, 'Role "%s" does not exist'%rolename
3636

3737
if newvalues.has_key('timezone'):
@@ -54,4 +54,4 @@ def init(db):
5454
db.user.audit('set', audit_user_fields)
5555
db.user.audit('create', audit_user_fields)
5656

57-
# vim: filetype=python ts=4 sw=4 et si
57+
# vim: sts=4 sw=4 et si

templates/minimal/detectors/userauditor.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1919
# SOFTWARE.
2020
#
21-
#$Id: userauditor.py,v 1.4 2007-08-31 15:57:47 jpend Exp $
21+
#$Id: userauditor.py,v 1.5 2007-08-31 17:45:17 jpend Exp $
2222

2323
def audit_user_fields(db, cl, nodeid, newvalues):
2424
''' Make sure user properties are valid.
@@ -30,8 +30,8 @@ def audit_user_fields(db, cl, nodeid, newvalues):
3030
if newvalues.has_key('address') and ' ' in newvalues['address']:
3131
raise ValueError, 'Email address must not contain spaces'
3232

33-
for rolename in newvalues.get('roles', '').split(','):
34-
if rolename and not db.security.role.has_key(rolename.lower().strip()):
33+
for rolename in [r.lower().strip() for r in newvalues.get('roles', '').split(',')]:
34+
if rolename and not db.security.role.has_key(rolename):
3535
raise ValueError, 'Role "%s" does not exist'%rolename
3636

3737
if newvalues.has_key('timezone'):
@@ -54,4 +54,4 @@ def init(db):
5454
db.user.audit('set', audit_user_fields)
5555
db.user.audit('create', audit_user_fields)
5656

57-
# vim: filetype=python ts=4 sw=4 et si
57+
# vim: sts=4 sw=4 et si

test/test_userauditor.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# $Id: test_userauditor.py,v 1.1 2007-08-31 15:57:47 jpend Exp $
1+
# $Id: test_userauditor.py,v 1.2 2007-08-31 17:45:17 jpend Exp $
22

33
import os, unittest, shutil
44
from db_test_base import setupTracker
@@ -67,11 +67,14 @@ def testBadRoles(self):
6767
self.assertRaises(ValueError, self.db.user.set, userid, roles='User,BadRole')
6868

6969
def testGoodRoles(self):
70+
userid = self.db.user.lookup('kyle')
7071
# make sure we handle commas in weird places
7172
self.db.user.set(userid, roles='User,')
7273
self.db.user.set(userid, roles=',User')
7374
# make sure we strip whitespace
7475
self.db.user.set(userid, roles=' User ')
76+
# check for all-whitespace (treat as no role)
77+
self.db.user.set(userid, roles=' ')
7578

7679
def test_suite():
7780
suite = unittest.TestSuite()

0 commit comments

Comments
 (0)