Merge "Return role names by AccessInfo.role_names"

This commit is contained in:
Jenkins
2014-01-30 11:11:32 +00:00
committed by Gerrit Code Review
4 changed files with 78 additions and 1 deletions

View File

@@ -163,6 +163,15 @@ class AccessInfo(dict):
""" """
raise NotImplementedError() raise NotImplementedError()
@property
def role_names(self):
"""Returns a list of role names of the user associated with the
authentication request.
:returns: a list of strings of role names
"""
raise NotImplementedError()
@property @property
def domain_name(self): def domain_name(self):
"""Returns the domain name associated with the authentication token. """Returns the domain name associated with the authentication token.
@@ -361,6 +370,10 @@ class AccessInfoV2(AccessInfo):
def user_domain_name(self): def user_domain_name(self):
return 'Default' return 'Default'
@property
def role_names(self):
return [r['name'] for r in self['user']['roles']]
@property @property
def domain_name(self): def domain_name(self):
return None return None
@@ -515,6 +528,10 @@ class AccessInfoV3(AccessInfo):
def user_domain_name(self): def user_domain_name(self):
return self['user']['domain']['name'] return self['user']['domain']['name']
@property
def role_names(self):
return [r['name'] for r in self['user'].get('roles', [])]
@property @property
def username(self): def username(self):
return self['user']['name'] return self['user']['name']

View File

@@ -44,6 +44,8 @@ class AccessInfoTest(utils.TestCase, testresources.ResourcedTestCase):
self.assertEqual(auth_ref.username, 'exampleuser') self.assertEqual(auth_ref.username, 'exampleuser')
self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a') self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a')
self.assertEqual(auth_ref.role_names, [])
self.assertEqual(auth_ref.tenant_name, None) self.assertEqual(auth_ref.tenant_name, None)
self.assertEqual(auth_ref.tenant_id, None) self.assertEqual(auth_ref.tenant_id, None)
@@ -84,6 +86,8 @@ class AccessInfoTest(utils.TestCase, testresources.ResourcedTestCase):
self.assertEqual(auth_ref.username, 'exampleuser') self.assertEqual(auth_ref.username, 'exampleuser')
self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a') self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a')
self.assertEqual(auth_ref.role_names, ['Member'])
self.assertEqual(auth_ref.tenant_name, 'exampleproject') self.assertEqual(auth_ref.tenant_name, 'exampleproject')
self.assertEqual(auth_ref.tenant_id, self.assertEqual(auth_ref.tenant_id,
'225da22d3ce34b15877ea70b2a575f58') '225da22d3ce34b15877ea70b2a575f58')
@@ -116,6 +120,7 @@ class AccessInfoTest(utils.TestCase, testresources.ResourcedTestCase):
self.assertEqual(auth_ref.project_domain_name, 'Default') self.assertEqual(auth_ref.project_domain_name, 'Default')
self.assertEqual(auth_ref.user_domain_id, 'default') self.assertEqual(auth_ref.user_domain_id, 'default')
self.assertEqual(auth_ref.user_domain_name, 'Default') self.assertEqual(auth_ref.user_domain_name, 'Default')
self.assertEqual(auth_ref.role_names, ['role1', 'role2'])
self.assertFalse(auth_ref.scoped) self.assertFalse(auth_ref.scoped)
def test_grizzly_token(self): def test_grizzly_token(self):
@@ -129,6 +134,7 @@ class AccessInfoTest(utils.TestCase, testresources.ResourcedTestCase):
self.assertEqual(auth_ref.project_domain_name, 'Default') self.assertEqual(auth_ref.project_domain_name, 'Default')
self.assertEqual(auth_ref.user_domain_id, 'default') self.assertEqual(auth_ref.user_domain_id, 'default')
self.assertEqual(auth_ref.user_domain_name, 'Default') self.assertEqual(auth_ref.user_domain_name, 'Default')
self.assertEqual(auth_ref.role_names, ['role1', 'role2'])
def load_tests(loader, tests, pattern): def load_tests(loader, tests, pattern):

View File

@@ -128,6 +128,22 @@ DOMAIN_SCOPED_TOKEN = {
}, },
'id': 'c4da488862bd435c9e6c0275a0d0e49a', 'id': 'c4da488862bd435c9e6c0275a0d0e49a',
'name': 'exampleuser', 'name': 'exampleuser',
'roles': [
{
"id": "76e72a",
"links": {
"self": "http://identity:35357/v3/roles/76e72a"
},
"name": "admin"
},
{
"id": "f4f392",
"links": {
"self": "http://identity:35357/v3/roles/f4f392"
},
"name": "member"
}
],
}, },
'domain': { 'domain': {
'id': '8e9283b7ba0b1038840c3842058b86ab', 'id': '8e9283b7ba0b1038840c3842058b86ab',
@@ -231,6 +247,22 @@ PROJECT_SCOPED_TOKEN = {
}, },
'id': 'c4da488862bd435c9e6c0275a0d0e49a', 'id': 'c4da488862bd435c9e6c0275a0d0e49a',
'name': 'exampleuser', 'name': 'exampleuser',
'roles': [
{
"id": "76e72a",
"links": {
"self": "http://identity:35357/v3/roles/76e72a"
},
"name": "admin"
},
{
"id": "f4f392",
"links": {
"self": "http://identity:35357/v3/roles/f4f392"
},
"name": "member"
}
],
}, },
'project': { 'project': {
'domain': { 'domain': {
@@ -269,7 +301,23 @@ AUTH_RESPONSE_BODY = {
'name': 'aDomain' 'name': 'aDomain'
}, },
'id': '567', 'id': '567',
'name': 'test' 'name': 'test',
'roles': [
{
"id": "76e72a",
"links": {
"self": "http://identity:35357/v3/roles/76e72a"
},
"name": "admin"
},
{
"id": "f4f392",
"links": {
"self": "http://identity:35357/v3/roles/f4f392"
},
"name": "member"
}
],
}, },
'issued_at': '2010-10-31T03:32:15-05:00', 'issued_at': '2010-10-31T03:32:15-05:00',
'catalog': [{ 'catalog': [{

View File

@@ -43,6 +43,8 @@ class AccessInfoTest(utils.TestCase):
self.assertEqual(auth_ref.username, 'exampleuser') self.assertEqual(auth_ref.username, 'exampleuser')
self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a') self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a')
self.assertEqual(auth_ref.role_names, [])
self.assertIsNone(auth_ref.project_name) self.assertIsNone(auth_ref.project_name)
self.assertIsNone(auth_ref.project_id) self.assertIsNone(auth_ref.project_id)
@@ -85,6 +87,8 @@ class AccessInfoTest(utils.TestCase):
self.assertEqual(auth_ref.username, 'exampleuser') self.assertEqual(auth_ref.username, 'exampleuser')
self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a') self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a')
self.assertEqual(auth_ref.role_names, ['admin', 'member'])
self.assertEqual(auth_ref.domain_name, 'anotherdomain') self.assertEqual(auth_ref.domain_name, 'anotherdomain')
self.assertEqual(auth_ref.domain_id, self.assertEqual(auth_ref.domain_id,
'8e9283b7ba0b1038840c3842058b86ab') '8e9283b7ba0b1038840c3842058b86ab')
@@ -116,6 +120,8 @@ class AccessInfoTest(utils.TestCase):
self.assertEqual(auth_ref.username, 'exampleuser') self.assertEqual(auth_ref.username, 'exampleuser')
self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a') self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a')
self.assertEqual(auth_ref.role_names, ['admin', 'member'])
self.assertIsNone(auth_ref.domain_name) self.assertIsNone(auth_ref.domain_name)
self.assertIsNone(auth_ref.domain_id) self.assertIsNone(auth_ref.domain_id)