Merge "Refactor _handle_shadow_and_local_users"
This commit is contained in:
commit
aa1f02efd4
|
@ -1039,22 +1039,19 @@ class Manager(manager.Manager):
|
|||
return hints
|
||||
|
||||
def _handle_shadow_and_local_users(self, driver, hints):
|
||||
federated_attributes = ['idp_id', 'protocol_id', 'unique_id']
|
||||
federated_attributes = {'idp_id', 'protocol_id', 'unique_id'}
|
||||
fed_res = []
|
||||
for filter_ in hints.filters:
|
||||
if filter_['name'] in federated_attributes:
|
||||
return PROVIDERS.shadow_users_api.get_federated_users(hints)
|
||||
fed_hints = copy.deepcopy(hints)
|
||||
res = driver.list_users(hints)
|
||||
|
||||
# Note: If the filters contain 'name', we should get the user from both
|
||||
# local user and shadow user backend.
|
||||
for filter_ in fed_hints.filters:
|
||||
# Note: If the filters contain 'name', we should get the user from
|
||||
# both local user and shadow user backend.
|
||||
if filter_['name'] == 'name':
|
||||
fed_hints = copy.deepcopy(hints)
|
||||
fed_res = PROVIDERS.shadow_users_api.get_federated_users(
|
||||
fed_hints)
|
||||
res += fed_res
|
||||
break
|
||||
return res
|
||||
return driver.list_users(hints) + fed_res
|
||||
|
||||
@domains_configured
|
||||
@exception_translated('user')
|
||||
|
|
|
@ -556,24 +556,28 @@ class IdentityTests(object):
|
|||
self._test_list_users_with_attribute(filters, federated_dict)
|
||||
|
||||
def test_list_users_with_name(self):
|
||||
federated_dict = unit.new_federated_user_ref(
|
||||
display_name='test@federation.org')
|
||||
federated_dict_1 = unit.new_federated_user_ref(
|
||||
display_name='test1@federation.org')
|
||||
federated_dict_2 = unit.new_federated_user_ref(
|
||||
display_name='test2@federation.org')
|
||||
domain = self._get_domain_fixture()
|
||||
|
||||
hints = driver_hints.Hints()
|
||||
hints.add_filter('name', 'test@federation.org')
|
||||
hints.add_filter('name', 'test1@federation.org')
|
||||
users = self.identity_api.list_users(hints=hints)
|
||||
self.assertEqual(0, len(users))
|
||||
|
||||
self.shadow_users_api.create_federated_user(domain['id'],
|
||||
federated_dict)
|
||||
federated_dict_1)
|
||||
self.shadow_users_api.create_federated_user(domain['id'],
|
||||
federated_dict_2)
|
||||
hints = driver_hints.Hints()
|
||||
hints.add_filter('name', 'test@federation.org')
|
||||
hints.add_filter('name', 'test1@federation.org')
|
||||
users = self.identity_api.list_users(hints=hints)
|
||||
self.assertEqual(1, len(users))
|
||||
|
||||
hints = driver_hints.Hints()
|
||||
hints.add_filter('name', 'test@federation.org')
|
||||
hints.add_filter('name', 'test1@federation.org')
|
||||
hints.add_filter('idp_id', 'ORG_IDP')
|
||||
users = self.identity_api.list_users(hints=hints)
|
||||
self.assertEqual(1, len(users))
|
||||
|
|
Loading…
Reference in New Issue