Domain included for role in list_role_assignment
When calling list_role_assignment and including the "include_names" parameter, it would return the domain name and ID for each party except for roles. This will return the domain name and id for roles when the parameter is included, if the role has a domain. Added tests for roles with domains at manager and API level. Co-Authored-By: Samuel de Medeiros Queiroz <samueldmq@gmail.com> Closes-Bug: #1607114 Change-Id: I5dae9299522b5116f8530455dd3d3376e9597b52
This commit is contained in:
parent
729e632701
commit
812982a45f
@ -826,6 +826,10 @@ class RoleAssignmentV3(controller.V3Controller):
|
||||
if 'role_name' in entity:
|
||||
formatted_entity['role'] = {'id': entity['role_id'],
|
||||
'name': entity['role_name']}
|
||||
if 'role_domain_id' in entity and 'role_domain_name' in entity:
|
||||
formatted_entity['role'].update(
|
||||
{'domain': {'id': entity['role_domain_id'],
|
||||
'name': entity['role_domain_name']}})
|
||||
else:
|
||||
formatted_entity['role'] = {'id': entity['role_id']}
|
||||
prior_role_link = ''
|
||||
|
@ -981,6 +981,11 @@ class Manager(manager.Manager):
|
||||
_role = self.role_api.get_role(id_)
|
||||
new_assign['role_id'] = _role['id']
|
||||
new_assign['role_name'] = _role['name']
|
||||
if _role['domain_id'] is not None:
|
||||
new_assign['role_domain_id'] = _role['domain_id']
|
||||
new_assign['role_domain_name'] = (
|
||||
self.resource_api.get_domain(_role['domain_id'])
|
||||
['name'])
|
||||
role_assign_list.append(new_assign)
|
||||
return role_assign_list
|
||||
|
||||
|
@ -2147,10 +2147,13 @@ class AssignmentTests(AssignmentTestHelperMixin):
|
||||
{'name': self.role_member['name']})
|
||||
# If the previous line didn't raise an exception then the test passes.
|
||||
|
||||
def test_list_role_assignment_containing_names(self):
|
||||
def _test_list_role_assignment_containing_names(self, domain_role=False):
|
||||
# Create Refs
|
||||
new_role = unit.new_role_ref()
|
||||
new_domain = self._get_domain_fixture()
|
||||
if domain_role:
|
||||
new_role = unit.new_role_ref(domain_id=new_domain['id'])
|
||||
else:
|
||||
new_role = unit.new_role_ref()
|
||||
new_user = unit.new_user_ref(domain_id=new_domain['id'])
|
||||
new_project = unit.new_project_ref(domain_id=new_domain['id'])
|
||||
new_group = unit.new_group_ref(domain_id=new_domain['id'])
|
||||
@ -2200,6 +2203,9 @@ class AssignmentTests(AssignmentTestHelperMixin):
|
||||
first_asgmt_prj['user_domain_id'])
|
||||
self.assertEqual(new_role['name'],
|
||||
first_asgmt_prj['role_name'])
|
||||
if domain_role:
|
||||
self.assertEqual(new_role['domain_id'],
|
||||
first_asgmt_prj['role_domain_id'])
|
||||
# Assert the names are correct in the group response
|
||||
self.assertEqual(new_group['name'],
|
||||
first_asgmt_grp['group_name'])
|
||||
@ -2211,6 +2217,9 @@ class AssignmentTests(AssignmentTestHelperMixin):
|
||||
first_asgmt_grp['project_domain_id'])
|
||||
self.assertEqual(new_role['name'],
|
||||
first_asgmt_grp['role_name'])
|
||||
if domain_role:
|
||||
self.assertEqual(new_role['domain_id'],
|
||||
first_asgmt_grp['role_domain_id'])
|
||||
# Assert the names are correct in the domain response
|
||||
self.assertEqual(new_domain['name'],
|
||||
first_asgmt_dmn['domain_name'])
|
||||
@ -2220,6 +2229,15 @@ class AssignmentTests(AssignmentTestHelperMixin):
|
||||
first_asgmt_dmn['user_domain_id'])
|
||||
self.assertEqual(new_role['name'],
|
||||
first_asgmt_dmn['role_name'])
|
||||
if domain_role:
|
||||
self.assertEqual(new_role['domain_id'],
|
||||
first_asgmt_dmn['role_domain_id'])
|
||||
|
||||
def test_list_role_assignment_containing_names_global_role(self):
|
||||
self._test_list_role_assignment_containing_names()
|
||||
|
||||
def test_list_role_assignment_containing_names_domain_role(self):
|
||||
self._test_list_role_assignment_containing_names(domain_role=True)
|
||||
|
||||
def test_list_role_assignment_does_not_contain_names(self):
|
||||
"""Test names are not included with list role assignments.
|
||||
@ -2236,6 +2254,7 @@ class AssignmentTests(AssignmentTestHelperMixin):
|
||||
self.assertNotIn('user_name', first_asgmt_prj)
|
||||
self.assertNotIn('user_domain_id', first_asgmt_prj)
|
||||
self.assertNotIn('role_name', first_asgmt_prj)
|
||||
self.assertNotIn('role_domain_id', first_asgmt_prj)
|
||||
|
||||
# Create Refs
|
||||
new_role = unit.new_role_ref()
|
||||
|
@ -1592,6 +1592,11 @@ class AssignmentTestMixin(object):
|
||||
if role_ref:
|
||||
entity['role'] = {'id': role_ref['id'],
|
||||
'name': role_ref['name']}
|
||||
if role_ref['domain_id']:
|
||||
dmn_name = self.resource_api.get_domain(
|
||||
role_ref['domain_id'])['name']
|
||||
entity['role']['domain'] = {'id': role_ref['domain_id'],
|
||||
'name': dmn_name}
|
||||
attributes_for_links['role_id'] = role_ref['id']
|
||||
|
||||
if inherited_assignment:
|
||||
|
@ -1604,7 +1604,7 @@ class AssignmentInheritanceTestCase(test_v3.RestfulTestCase,
|
||||
inherited_to_projects=True)
|
||||
self.assertRoleAssignmentInListResponse(r, up_entity)
|
||||
|
||||
def test_list_role_assignments_include_names(self):
|
||||
def _test_list_role_assignments_include_names(self, role1):
|
||||
"""Call ``GET /role_assignments with include names``.
|
||||
|
||||
Test Plan:
|
||||
@ -1696,6 +1696,18 @@ class AssignmentInheritanceTestCase(test_v3.RestfulTestCase,
|
||||
self.assertRoleAssignmentInListResponse(rs_user, expected_entity3)
|
||||
self.assertRoleAssignmentInListResponse(rs_role, expected_entity1)
|
||||
|
||||
def test_list_role_assignments_include_names_global_role(self):
|
||||
role = unit.new_role_ref()
|
||||
self.role_api.create_role(role['id'], role)
|
||||
|
||||
self._test_list_role_assignments_include_names(role)
|
||||
|
||||
def test_list_role_assignments_include_names_domain_role(self):
|
||||
role = unit.new_role_ref(domain_id=self.domain['id'])
|
||||
self.role_api.create_role(role['id'], role)
|
||||
|
||||
self._test_list_role_assignments_include_names(role)
|
||||
|
||||
def test_list_role_assignments_for_disabled_inheritance_extension(self):
|
||||
"""Call ``GET /role_assignments with inherited domain grants``.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user