Fix: Loosen permissions a bit to prevent side effects
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 17 Dec 2025 10:02:55 +0000 (11:02 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 17 Dec 2025 10:02:55 +0000 (11:02 +0100)
music_assistant/controllers/config.py

index 9fe45d1e453f7ff5dfddedd5fc9d5e02605d0a18..fb1899e8631860b3c9914ebeda9ab0bde839745f 100644 (file)
@@ -215,7 +215,7 @@ class ConfigController:
 
         self.save()
 
-    @api_command("config/providers", required_role="admin")
+    @api_command("config/providers")
     async def get_provider_configs(
         self,
         provider_type: ProviderType | None = None,
@@ -236,7 +236,7 @@ class ConfigController:
             and prov_conf["domain"] in prov_entries
         ]
 
-    @api_command("config/providers/get", required_role="admin")
+    @api_command("config/providers/get")
     async def get_provider_config(self, instance_id: str) -> ProviderConfig:
         """Return configuration for a single provider."""
         if raw_conf := self.get(f"{CONF_PROVIDERS}/{instance_id}", {}):
@@ -285,7 +285,7 @@ class ConfigController:
         return_type: None = ...,
     ) -> ConfigValueType: ...
 
-    @api_command("config/providers/get_value", required_role="admin")
+    @api_command("config/providers/get_value")
     async def get_provider_config_value(
         self,
         instance_id: str,
@@ -323,7 +323,7 @@ class ConfigController:
         self._value_cache[cache_key] = val
         return val
 
-    @api_command("config/providers/get_entries", required_role="admin")
+    @api_command("config/providers/get_entries")
     async def get_provider_config_entries(  # noqa: PLR0915
         self,
         provider_domain: str,
@@ -487,7 +487,7 @@ class ConfigController:
             return
         self.remove(conf_key)
 
-    @api_command("config/players", required_role="admin")
+    @api_command("config/players")
     async def get_player_configs(
         self, provider: str | None = None, include_values: bool = False
     ) -> list[PlayerConfig]:
@@ -506,7 +506,7 @@ class ConfigController:
             and (provider in (None, raw_conf["provider"]))
         ]
 
-    @api_command("config/players/get", required_role="admin")
+    @api_command("config/players/get")
     async def get_player_config(
         self,
         player_id: str,
@@ -533,7 +533,7 @@ class ConfigController:
         msg = f"No config found for player id {player_id}"
         raise KeyError(msg)
 
-    @api_command("config/players/get_entries", required_role="admin")
+    @api_command("config/players/get_entries")
     async def get_player_config_entries(
         self,
         player_id: str,
@@ -600,7 +600,7 @@ class ConfigController:
         return_type: None = ...,
     ) -> ConfigValueType: ...
 
-    @api_command("config/players/get_value", required_role="admin")
+    @api_command("config/players/get_value")
     async def get_player_config_value(
         self,
         player_id: str,
@@ -732,7 +732,7 @@ class ConfigController:
         conf_key = f"{CONF_PLAYERS}/{player_id}/default_name"
         self.set(conf_key, default_name)
 
-    @api_command("config/players/dsp/get", required_role="admin")
+    @api_command("config/players/dsp/get")
     def get_player_dsp_config(self, player_id: str) -> DSPConfig:
         """
         Return the DSP Configuration for a player.
@@ -812,7 +812,7 @@ class ConfigController:
         )
         return config
 
-    @api_command("config/dsp_presets/get", required_role="admin")
+    @api_command("config/dsp_presets/get")
     async def get_dsp_presets(self) -> list[DSPConfigPreset]:
         """Return all user-defined DSP presets."""
         raw_presets = self.get(CONF_PLAYER_DSP_PRESETS, {})
@@ -934,7 +934,7 @@ class ConfigController:
         conf_key = f"{CONF_PROVIDERS}/{default_config.instance_id}"
         self.set_default(conf_key, default_config.to_raw())
 
-    @api_command("config/core", required_role="admin")
+    @api_command("config/core")
     async def get_core_configs(self, include_values: bool = False) -> list[CoreConfig]:
         """Return all core controllers config options."""
         return [
@@ -950,7 +950,7 @@ class ConfigController:
             for core_controller in CONFIGURABLE_CORE_CONTROLLERS
         ]
 
-    @api_command("config/core/get", required_role="admin")
+    @api_command("config/core/get")
     async def get_core_config(self, domain: str) -> CoreConfig:
         """Return configuration for a single core controller."""
         raw_conf = self.get(f"{CONF_CORE}/{domain}", {"domain": domain})
@@ -987,7 +987,7 @@ class ConfigController:
         return_type: None = ...,
     ) -> ConfigValueType: ...
 
-    @api_command("config/core/get_value", required_role="admin")
+    @api_command("config/core/get_value")
     async def get_core_config_value(
         self,
         domain: str,
@@ -1019,7 +1019,7 @@ class ConfigController:
             else conf.values[key].default_value
         )
 
-    @api_command("config/core/get_entries", required_role="admin")
+    @api_command("config/core/get_entries")
     async def get_core_config_entries(
         self,
         domain: str,