From 8370fad1831cc97a8321942d70a9bf6539b3a8c6 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Fri, 19 Dec 2025 02:05:54 +0100 Subject: [PATCH] Always update user details from ingress flow --- .../webserver/helpers/auth_middleware.py | 19 ++++++++----------- .../controllers/webserver/websocket_client.py | 19 +++++++------------ 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/music_assistant/controllers/webserver/helpers/auth_middleware.py b/music_assistant/controllers/webserver/helpers/auth_middleware.py index d2897684..b05c5a72 100644 --- a/music_assistant/controllers/webserver/helpers/auth_middleware.py +++ b/music_assistant/controllers/webserver/helpers/auth_middleware.py @@ -68,17 +68,14 @@ async def get_authenticated_user(request: web.Request) -> User | None: user, AuthProviderType.HOME_ASSISTANT, ingress_user_id ) - # Update user with HA details if missing (HA is source of truth) - if not user.display_name or not user.avatar_url: - _, ha_display_name, avatar_url = await get_ha_user_details(mass, ingress_user_id) - update_display_name = ha_display_name if not user.display_name else None - update_avatar_url = avatar_url if not user.avatar_url else None - if update_display_name or update_avatar_url: - user = await mass.webserver.auth.update_user( - user, - display_name=update_display_name, - avatar_url=update_avatar_url, - ) + # Update user with HA details if available (HA is source of truth) + _, ha_display_name, avatar_url = await get_ha_user_details(mass, ingress_user_id) + if ha_display_name or avatar_url: + user = await mass.webserver.auth.update_user( + user, + display_name=ha_display_name, + avatar_url=avatar_url, + ) # Store in request context request[USER_CONTEXT_KEY] = user diff --git a/music_assistant/controllers/webserver/websocket_client.py b/music_assistant/controllers/webserver/websocket_client.py index 193d722a..18c3111f 100644 --- a/music_assistant/controllers/webserver/websocket_client.py +++ b/music_assistant/controllers/webserver/websocket_client.py @@ -390,19 +390,14 @@ class WebsocketClientHandler: user, AuthProviderType.HOME_ASSISTANT, ingress_user_id ) - # Update user with HA details if missing (HA is source of truth) - if not user.display_name or not user.avatar_url: - _, ha_display_name, avatar_url = await get_ha_user_details( - self.mass, ingress_user_id + # Update user with HA details if available (HA is source of truth) + _, ha_display_name, avatar_url = await get_ha_user_details(self.mass, ingress_user_id) + if ha_display_name or avatar_url: + user = await self.webserver.auth.update_user( + user, + display_name=ha_display_name, + avatar_url=avatar_url, ) - update_display_name = ha_display_name if not user.display_name else None - update_avatar_url = avatar_url if not user.avatar_url else None - if update_display_name or update_avatar_url: - user = await self.webserver.auth.update_user( - user, - display_name=update_display_name, - avatar_url=update_avatar_url, - ) self._authenticated_user = user self._logger.debug("Ingress user authenticated: %s", user.username) -- 2.34.1