diff --git a/Monitor/Pages/SetupPassword.cshtml b/Monitor/Pages/SetupPassword.cshtml index 7c2f9d0..600a91b 100644 --- a/Monitor/Pages/SetupPassword.cshtml +++ b/Monitor/Pages/SetupPassword.cshtml @@ -14,9 +14,18 @@

PT Magic

Setup your password.

-
+ + @if (System.IO.File.Exists(System.IO.Directory.GetCurrentDirectory().Split("Monitor")[0] + "settings.secure.json")) + { +
+
+ +
+
+ } +
@@ -29,14 +38,6 @@
- @if (!Model.ValidationMessage.Equals("")) { -
-
- @Model.ValidationMessage -
-
- } -
-
-
diff --git a/Monitor/Pages/SetupPassword.cshtml.cs b/Monitor/Pages/SetupPassword.cshtml.cs index f8d6bb8..0d93fd6 100644 --- a/Monitor/Pages/SetupPassword.cshtml.cs +++ b/Monitor/Pages/SetupPassword.cshtml.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Http; using System.Threading.Tasks; using Newtonsoft.Json; using Core.Main; +using Core.Helper; namespace Monitor.Pages { @@ -16,19 +17,37 @@ namespace Monitor.Pages base.PreInit(); } - public void OnPost(string password, string passwordConfirm) + public void OnPost(string OldPassword, string Password, string PasswordConfirm) { - if (!password.Equals(passwordConfirm)) - { - base.PreInit(); - Response.Redirect(PTMagicConfiguration.GeneralSettings.Monitor.RootUrl + "SetupPassword"); - } - else if (ModelState.IsValid) - { - base.PreInit(); - PTMagicConfiguration.WriteSecureSettings(password); + base.PreInit(); - Response.Redirect(PTMagicConfiguration.GeneralSettings.Monitor.RootUrl + "Login"); + string encryptedOldPassword = null; + + if (OldPassword != null) + { + encryptedOldPassword = EncryptionHelper.Encrypt(OldPassword); + + if (!Password.Equals(PasswordConfirm) || !encryptedOldPassword.Equals(PTMagicConfiguration.SecureSettings.MonitorPassword) && System.IO.File.Exists(System.IO.Directory.GetCurrentDirectory().Split("Monitor")[0] + "settings.secure.json")) + { + Response.Redirect(PTMagicConfiguration.GeneralSettings.Monitor.RootUrl + "SetupPassword"); + } + else if (ModelState.IsValid) + { + PTMagicConfiguration.WriteSecureSettings(Password); + Response.Redirect(PTMagicConfiguration.GeneralSettings.Monitor.RootUrl + "Login"); + } + } + else + { + if (!Password.Equals(PasswordConfirm) && !System.IO.File.Exists(System.IO.Directory.GetCurrentDirectory().Split("Monitor")[0] + "settings.secure.json")) + { + Response.Redirect(PTMagicConfiguration.GeneralSettings.Monitor.RootUrl + "SetupPassword"); + } + else if (ModelState.IsValid) + { + PTMagicConfiguration.WriteSecureSettings(Password); + Response.Redirect(PTMagicConfiguration.GeneralSettings.Monitor.RootUrl + "Login"); + } } }