Fixed KeyError in user_has_role()

This commit is contained in:
Sybren A. Stüvel 2016-06-30 18:10:11 +02:00
parent 1cd201dc89
commit 27d6289f17
2 changed files with 13 additions and 1 deletions

View File

@ -313,7 +313,8 @@ def user_has_role(role, user=None):
if user is None:
return False
return role in user['roles']
roles = user.get('roles') or ()
return role in roles
def user_matches_roles(require_roles=set(),

View File

@ -573,3 +573,14 @@ class RequireRolesTest(AbstractPillarTest):
'roles': [u'service', u'badger']}
call_me()
self.assertTrue(called[0])
def test_user_has_role(self):
from application.utils.authorization import user_has_role
with self.app.test_request_context():
self.assertTrue(user_has_role('subscriber', {'roles': ['aap', 'noot', 'subscriber']}))
self.assertTrue(user_has_role('subscriber', {'roles': [u'aap', u'subscriber']}))
self.assertFalse(user_has_role('admin', {'roles': [u'aap', u'noot', u'subscriber']}))
self.assertFalse(user_has_role('admin', {'roles': []}))
self.assertFalse(user_has_role('admin', {'roles': None}))
self.assertFalse(user_has_role('admin', {}))