Skip to content

Commit 7badf88

Browse files
committed
Prevent AttributeError when removing all roles of a user
When making the entry field empty newvalues.get('roles') is None, causing: AttributeError: 'NoneType' object has no attribute 'split'
1 parent 6414ec5 commit 7badf88

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

share/roundup/templates/classic/detectors/userauditor.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ def audit_user_fields(db, cl, nodeid, newvalues):
6666
if check_main or check_alts:
6767
raise ValueError, 'Email address %s already in use' % address
6868

69-
for rolename in [r.lower().strip() for r in newvalues.get('roles', '').split(',')]:
69+
newroles = newvalues.get('roles')
70+
if newroles:
71+
for rolename in [r.lower().strip() for r in newroles.split(',')]:
7072
if rolename and not db.security.role.has_key(rolename):
7173
raise ValueError, 'Role "%s" does not exist'%rolename
7274

share/roundup/templates/devel/detectors/userauditor.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ def audit_user_fields(db, cl, nodeid, newvalues):
6666
if check_main or check_alts:
6767
raise ValueError, 'Email address %s already in use' % address
6868

69-
for rolename in [r.lower().strip() for r in newvalues.get('roles', '').split(',')]:
69+
newroles = newvalues.get('roles')
70+
if newroles:
71+
for rolename in [r.lower().strip() for r in newroles.split(',')]:
7072
if rolename and not db.security.role.has_key(rolename):
7173
raise ValueError, 'Role "%s" does not exist'%rolename
7274

share/roundup/templates/minimal/detectors/userauditor.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ def audit_user_fields(db, cl, nodeid, newvalues):
6666
if check_main or check_alts:
6767
raise ValueError, 'Email address %s already in use' % address
6868

69-
for rolename in [r.lower().strip() for r in newvalues.get('roles', '').split(',')]:
69+
newroles = newvalues.get('roles')
70+
if newroles:
71+
for rolename in [r.lower().strip() for r in newroles.split(',')]:
7072
if rolename and not db.security.role.has_key(rolename):
7173
raise ValueError, 'Role "%s" does not exist'%rolename
7274

website/issues/detectors/userauditor.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ def audit_user_fields(db, cl, nodeid, newvalues):
6666
if check_main or check_alts:
6767
raise ValueError, 'Email address %s already in use' % address
6868

69-
for rolename in [r.lower().strip() for r in newvalues.get('roles', '').split(',')]:
69+
newroles = newvalues.get('roles')
70+
if newroles:
71+
for rolename in [r.lower().strip() for r in newroles.split(',')]:
7072
if rolename and not db.security.role.has_key(rolename):
7173
raise ValueError, 'Role "%s" does not exist'%rolename
7274

0 commit comments

Comments
 (0)