aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Controllers/ConfigurationController.cs
diff options
context:
space:
mode:
authorKGT1 <kilian.gamn@gmx.de>2025-04-01 01:46:01 +0200
committerGitHub <noreply@github.com>2025-03-31 17:46:01 -0600
commit14b785d188647ae896c5d20869ab6bcc967fcfc2 (patch)
treeb62376f9a61f132f6218b762834fe7b17a26f3be /Jellyfin.Api/Controllers/ConfigurationController.cs
parent940c4e8ba895f02fdc2f04932cd1eea9f7cc8cbf (diff)
Preserve SplashscreenLocation when updating branding config (#13756)
* add BrandingOptionsDto and add branding endpoints * refactor new HttpGet Configuration Branding into existing API calls * Add BrandingOptions to _ignoredConfigurations for openAPI * rename BrandOptionsDto to BrandingOptionsDto
Diffstat (limited to 'Jellyfin.Api/Controllers/ConfigurationController.cs')
-rw-r--r--Jellyfin.Api/Controllers/ConfigurationController.cs25
1 files changed, 25 insertions, 0 deletions
diff --git a/Jellyfin.Api/Controllers/ConfigurationController.cs b/Jellyfin.Api/Controllers/ConfigurationController.cs
index abe8bec2d..8dcaebf6d 100644
--- a/Jellyfin.Api/Controllers/ConfigurationController.cs
+++ b/Jellyfin.Api/Controllers/ConfigurationController.cs
@@ -9,6 +9,7 @@ using Jellyfin.Extensions.Json;
using MediaBrowser.Common.Api;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.MediaEncoding;
+using MediaBrowser.Model.Branding;
using MediaBrowser.Model.Configuration;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
@@ -120,6 +121,30 @@ public class ConfigurationController : BaseJellyfinApiController
}
/// <summary>
+ /// Updates branding configuration.
+ /// </summary>
+ /// <param name="configuration">Branding configuration.</param>
+ /// <response code="204">Branding configuration updated.</response>
+ /// <returns>Update status.</returns>
+ [HttpPost("Configuration/Branding")]
+ [Authorize(Policy = Policies.RequiresElevation)]
+ [ProducesResponseType(StatusCodes.Status204NoContent)]
+ public ActionResult UpdateBrandingConfiguration([FromBody, Required] BrandingOptionsDto configuration)
+ {
+ // Get the current branding configuration to preserve SplashscreenLocation
+ var currentBranding = (BrandingOptions)_configurationManager.GetConfiguration("branding");
+
+ // Update only the properties from BrandingOptionsDto
+ currentBranding.LoginDisclaimer = configuration.LoginDisclaimer;
+ currentBranding.CustomCss = configuration.CustomCss;
+ currentBranding.SplashscreenEnabled = configuration.SplashscreenEnabled;
+
+ _configurationManager.SaveConfiguration("branding", currentBranding);
+
+ return NoContent();
+ }
+
+ /// <summary>
/// Updates the path to the media encoder.
/// </summary>
/// <param name="mediaEncoderPath">Media encoder path form body.</param>