From 30d0a31d41340d0ad340d12db3455156b04e71fc Mon Sep 17 00:00:00 2001 From: Radomir Dopieralski Date: Tue, 31 Jan 2017 13:01:51 +0100 Subject: [PATCH] Use domain_context not effective domain to display domains list Use domain_context to decide whether to call domain_list or domain_get in the list of domains. Previous code used the user's effective domain instead, which is no longer the same thing with Keystone V3. Closes-Bug: #1660602 Change-Id: Ie410d282c5b19a061fe83b496785f35bbcfad9ad (cherry picked from commit 1be065aed8e330c746f85f9600d2c60c4478a661) --- .../dashboards/identity/domains/tests.py | 8 -------- .../dashboards/identity/domains/views.py | 19 +++++++++---------- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/openstack_dashboard/dashboards/identity/domains/tests.py b/openstack_dashboard/dashboards/identity/domains/tests.py index 96524ac16a..79b19c0c23 100644 --- a/openstack_dashboard/dashboards/identity/domains/tests.py +++ b/openstack_dashboard/dashboards/identity/domains/tests.py @@ -39,8 +39,6 @@ class DomainsViewTests(test.BaseAdminViewTests): @test.create_stubs({api.keystone: ('domain_get', 'domain_list',)}) def test_index(self): - domain = self.domains.get(id="1") - api.keystone.domain_get(IsA(http.HttpRequest), '1').AndReturn(domain) api.keystone.domain_list(IgnoreArg()).AndReturn(self.domains.list()) self.mox.ReplayAll() @@ -59,8 +57,6 @@ class DomainsViewTests(test.BaseAdminViewTests): 'domain_list', 'keystone_can_edit_domain')}) def test_index_with_keystone_can_edit_domain_false(self): - domain = self.domains.get(id="1") - api.keystone.domain_get(IsA(http.HttpRequest), '1').AndReturn(domain) api.keystone.domain_list(IgnoreArg()).AndReturn(self.domains.list()) api.keystone.keystone_can_edit_domain() \ .MultipleTimes().AndReturn(False) @@ -83,7 +79,6 @@ class DomainsViewTests(test.BaseAdminViewTests): def test_delete_domain(self): domain = self.domains.get(id="2") - api.keystone.domain_get(IsA(http.HttpRequest), '2').AndReturn(domain) api.keystone.domain_list(IgnoreArg()).AndReturn(self.domains.list()) api.keystone.domain_delete(IgnoreArg(), domain.id) @@ -99,7 +94,6 @@ class DomainsViewTests(test.BaseAdminViewTests): def test_delete_with_enabled_domain(self): domain = self.domains.get(id="1") - api.keystone.domain_get(IsA(http.HttpRequest), '1').AndReturn(domain) api.keystone.domain_list(IgnoreArg()).AndReturn(self.domains.list()) self.mox.ReplayAll() @@ -116,7 +110,6 @@ class DomainsViewTests(test.BaseAdminViewTests): def test_disable(self): domain = self.domains.get(id="1") - api.keystone.domain_get(IsA(http.HttpRequest), '1').AndReturn(domain) api.keystone.domain_list(IgnoreArg()).AndReturn(self.domains.list()) api.keystone.domain_update(IsA(http.HttpRequest), description=domain.description, @@ -138,7 +131,6 @@ class DomainsViewTests(test.BaseAdminViewTests): def test_enable(self): domain = self.domains.get(id="2") - api.keystone.domain_get(IsA(http.HttpRequest), '1').AndReturn(domain) api.keystone.domain_list(IgnoreArg()).AndReturn(self.domains.list()) api.keystone.domain_update(IsA(http.HttpRequest), description=domain.description, diff --git a/openstack_dashboard/dashboards/identity/domains/views.py b/openstack_dashboard/dashboards/identity/domains/views.py index b1301cf7b7..c3914facc1 100644 --- a/openstack_dashboard/dashboards/identity/domains/views.py +++ b/openstack_dashboard/dashboards/identity/domains/views.py @@ -38,22 +38,21 @@ class IndexView(tables.DataTableView): def get_data(self): domains = [] - domain_id = identity.get_domain_id_for_operation(self.request) + domain_context = self.request.session.get('domain_context') - if policy.check((("identity", "identity:list_domains"),), - self.request): + if policy.check(( + ("identity", "identity:list_domains"), + ), self.request) and not domain_context: try: - if domain_id: - domain = api.keystone.domain_get(self.request, domain_id) - domains.append(domain) - else: - domains = api.keystone.domain_list(self.request) + domains = api.keystone.domain_list(self.request) except Exception: exceptions.handle(self.request, _('Unable to retrieve domain list.')) - elif policy.check((("identity", "identity:get_domain"),), - self.request): + elif policy.check(( + ("identity", "identity:get_domain"), + ), self.request): try: + domain_id = identity.get_domain_id_for_operation(self.request) domain = api.keystone.domain_get(self.request, domain_id) domains.append(domain) except Exception: