Always update user details from ingress flow
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Fri, 19 Dec 2025 01:05:54 +0000 (02:05 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Fri, 19 Dec 2025 01:05:54 +0000 (02:05 +0100)
music_assistant/controllers/webserver/helpers/auth_middleware.py
music_assistant/controllers/webserver/websocket_client.py

index d28976845ef9b0897ea98cf50925c84676c3cbc8..b05c5a720de71547a6925793f4cc5eda393c05ea 100644 (file)
@@ -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
index 193d722a34ca3e242330dbcecad48bd9829bc48f..18c3111f6fb139b61373cadc62887a4326329791 100644 (file)
@@ -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)