1
mirror of https://github.com/home-assistant/core synced 2024-09-12 15:16:21 +02:00

Return if refresh token is current used one in WS API (#16575)

This commit is contained in:
Jason Hu 2018-09-12 00:49:44 -07:00 committed by Paulus Schoutsen
parent e2465da7c2
commit 34d369ba26
3 changed files with 4 additions and 0 deletions

View File

@ -475,6 +475,7 @@ def websocket_create_long_lived_access_token(
def websocket_refresh_tokens(
hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg):
"""Return metadata of users refresh tokens."""
current_id = connection.request.get('refresh_token_id')
connection.to_write.put_nowait(websocket_api.result_message(msg['id'], [{
'id': refresh.id,
'client_id': refresh.client_id,
@ -482,6 +483,7 @@ def websocket_refresh_tokens(
'client_icon': refresh.client_icon,
'type': refresh.token_type,
'created_at': refresh.created_at,
'is_current': refresh.id == current_id,
} for refresh in connection.user.refresh_tokens.values()]))

View File

@ -360,6 +360,7 @@ class ActiveConnection:
authenticated = refresh_token is not None
if authenticated:
request['hass_user'] = refresh_token.user
request['refresh_token_id'] = refresh_token.id
elif ((not self.hass.auth.active or
self.hass.auth.support_legacy) and

View File

@ -320,6 +320,7 @@ async def test_ws_refresh_tokens(hass, hass_ws_client, hass_access_token):
assert token['client_name'] == refresh_token.client_name
assert token['client_icon'] == refresh_token.client_icon
assert token['created_at'] == refresh_token.created_at.isoformat()
assert token['is_current'] is True
async def test_ws_delete_refresh_token(hass, hass_ws_client,