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.
-
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");
+ }
}
}