Fix credentials lookup (#15409)

This commit is contained in:
Paulus Schoutsen
2018-07-10 20:33:03 +02:00
committed by GitHub
parent fd568d77c7
commit 1f6331c69d
2 changed files with 16 additions and 4 deletions

View File

@@ -311,10 +311,7 @@ class AuthManager:
if not credentials.is_new:
for user in await self._store.async_get_users():
for creds in user.credentials:
if (creds.auth_provider_type ==
credentials.auth_provider_type
and creds.auth_provider_id ==
credentials.auth_provider_id):
if creds.id == credentials.id:
return user
raise ValueError('Unable to find the user.')

View File

@@ -94,6 +94,21 @@ async def test_login_as_existing_user(mock_hass):
}])
ensure_auth_manager_loaded(manager)
# Add a fake user that we're not going to log in with
user = MockUser(
id='mock-user2',
is_owner=False,
is_active=False,
name='Not user',
).add_to_auth_manager(manager)
user.credentials.append(auth.Credentials(
id='mock-id2',
auth_provider_type='insecure_example',
auth_provider_id=None,
data={'username': 'other-user'},
is_new=False,
))
# Add fake user with credentials for example auth provider.
user = MockUser(
id='mock-user',