aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Controllers/StartupController.cs
diff options
context:
space:
mode:
authorClaus Vium <clausvium@gmail.com>2019-07-02 12:21:54 +0200
committerClaus Vium <clausvium@gmail.com>2019-11-19 21:48:16 +0100
commite5d57bd82f9a089b7c19ea357efd2b8b34fd418b (patch)
treec6eb554c5e8a33af9cb170fbbbb1779d108cbae8 /Jellyfin.Api/Controllers/StartupController.cs
parentc0d10800ab6c029b891af5caf5d0fccaf76816d3 (diff)
Move StartupWizard to ASP.NET Web Api
Diffstat (limited to 'Jellyfin.Api/Controllers/StartupController.cs')
-rw-r--r--Jellyfin.Api/Controllers/StartupController.cs88
1 files changed, 88 insertions, 0 deletions
diff --git a/Jellyfin.Api/Controllers/StartupController.cs b/Jellyfin.Api/Controllers/StartupController.cs
new file mode 100644
index 000000000..c17b534eb
--- /dev/null
+++ b/Jellyfin.Api/Controllers/StartupController.cs
@@ -0,0 +1,88 @@
+using System.Linq;
+using System.Threading.Tasks;
+using Jellyfin.Api.Models.Startup;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Library;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Jellyfin.Api.Controllers
+{
+ [ApiVersion("1")]
+ [Route("[controller]")]
+ public class StartupController : ControllerBase
+ {
+ private readonly IServerConfigurationManager _config;
+ private readonly IUserManager _userManager;
+
+ public StartupController(IServerConfigurationManager config, IUserManager userManager)
+ {
+ _config = config;
+ _userManager = userManager;
+ }
+
+ [HttpPost("Complete")]
+ public void Post()
+ {
+ _config.Configuration.IsStartupWizardCompleted = true;
+ _config.SetOptimalValues();
+ _config.SaveConfiguration();
+ }
+
+ [HttpGet("Configuration")]
+ public StartupConfiguration Get()
+ {
+ var result = new StartupConfiguration
+ {
+ UICulture = _config.Configuration.UICulture,
+ MetadataCountryCode = _config.Configuration.MetadataCountryCode,
+ PreferredMetadataLanguage = _config.Configuration.PreferredMetadataLanguage
+ };
+
+ return result;
+ }
+
+ [HttpPost("Configuration")]
+ public void UpdateInitial([FromForm] string uiCulture, [FromForm] string metadataCountryCode, [FromForm] string preferredMetadataLanguage)
+ {
+ _config.Configuration.UICulture = uiCulture;
+ _config.Configuration.MetadataCountryCode = metadataCountryCode;
+ _config.Configuration.PreferredMetadataLanguage = preferredMetadataLanguage;
+ _config.SaveConfiguration();
+ }
+
+ [HttpPost("RemoteAccess")]
+ public void Post([FromForm] bool enableRemoteAccess, [FromForm] bool enableAutomaticPortMapping)
+ {
+ _config.Configuration.EnableRemoteAccess = enableRemoteAccess;
+ _config.Configuration.EnableUPnP = enableAutomaticPortMapping;
+ _config.SaveConfiguration();
+ }
+
+ [HttpGet("User")]
+ public StartupUser GetUser()
+ {
+ var user = _userManager.Users.First();
+
+ return new StartupUser
+ {
+ Name = user.Name,
+ Password = user.Password
+ };
+ }
+
+ [HttpPost("User")]
+ public async Task Post([FromForm] StartupUser startupUser)
+ {
+ var user = _userManager.Users.First();
+
+ user.Name = startupUser.Name;
+
+ _userManager.UpdateUser(user);
+
+ if (!string.IsNullOrEmpty(startupUser.Password))
+ {
+ await _userManager.ChangePassword(user, startupUser.Password).ConfigureAwait(false);
+ }
+ }
+ }
+}