From e32e7ad36f59f3efb91c0de2265a6d787f89e120 Mon Sep 17 00:00:00 2001 From: Michael Green <84688932+michael-j-green@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:51:00 +1100 Subject: [PATCH] Improved handling of password user feedback (#212) --- .../Controllers/V1.0/AccountController.cs | 2 +- .../Controllers/V1.1/FirstSetupController.cs | 6 ++++- .../pages/dialogs/settingsuseredit.html | 25 ++++++++++++++++--- .../pages/dialogs/settingsusernew.html | 24 +++++++++++++++--- .../wwwroot/pages/dialogs/userprofile.html | 14 +++++++++-- gaseous-server/wwwroot/pages/first.html | 25 +++++++++++++------ gaseous-server/wwwroot/pages/login.html | 4 +++ 7 files changed, 80 insertions(+), 20 deletions(-) diff --git a/gaseous-server/Controllers/V1.0/AccountController.cs b/gaseous-server/Controllers/V1.0/AccountController.cs index 9f072ae..d077a80 100644 --- a/gaseous-server/Controllers/V1.0/AccountController.cs +++ b/gaseous-server/Controllers/V1.0/AccountController.cs @@ -375,7 +375,7 @@ namespace gaseous_server.Controllers IdentityResult passwordChangeResult = await _userManager.ResetPasswordAsync(user, resetToken, model.NewPassword); if (passwordChangeResult.Succeeded == true) { - return Ok(); + return Ok(passwordChangeResult); } else { diff --git a/gaseous-server/Controllers/V1.1/FirstSetupController.cs b/gaseous-server/Controllers/V1.1/FirstSetupController.cs index 5685231..f78376c 100644 --- a/gaseous-server/Controllers/V1.1/FirstSetupController.cs +++ b/gaseous-server/Controllers/V1.1/FirstSetupController.cs @@ -63,7 +63,11 @@ namespace gaseous_server.Controllers Config.SetSetting("FirstRunStatus", "1"); - return Ok(); + return Ok(result); + } + else + { + return Ok(result); } } diff --git a/gaseous-server/wwwroot/pages/dialogs/settingsuseredit.html b/gaseous-server/wwwroot/pages/dialogs/settingsuseredit.html index db936ab..d559b25 100644 --- a/gaseous-server/wwwroot/pages/dialogs/settingsuseredit.html +++ b/gaseous-server/wwwroot/pages/dialogs/settingsuseredit.html @@ -27,6 +27,9 @@ + + + @@ -339,6 +342,7 @@ var newPassword = document.getElementById('settings_users_edit_password').value; if (newPassword.length > 0) { + console.log("New password value is long enough to commit to database"); var model = { "newPassword": newPassword, "confirmPassword": newPassword @@ -348,12 +352,10 @@ '/api/v1.1/Account/Users/' + modalVariables + '/Password', 'POST', function(result) { - console.log(JSON.stringify(result)); - savePropertiesCallback(); + savePasswordsCallback(result); }, function(error) { - console.log(JSON.stringify(error)); - savePropertiesCallback(); + savePasswordsCallback(error); }, JSON.stringify(model) ); @@ -366,6 +368,21 @@ } } + function savePasswordsCallback(result) { + console.log(result); + if (result.succeeded == true) { + savePropertiesCallback(); + } else { + var errorBox = document.getElementById('settings_users_edit_errorlabel'); + errorBox.innerHTML = ''; + for (var i = 0; i < result.errors.length; i++) { + var errorMessage = document.createElement('p'); + errorMessage.innerHTML = result.errors[i].description; + errorBox.appendChild(errorMessage); + } + } + } + function savePropertiesCallback() { GetUsers(); closeDialog(); diff --git a/gaseous-server/wwwroot/pages/dialogs/settingsusernew.html b/gaseous-server/wwwroot/pages/dialogs/settingsusernew.html index ccacd4a..13f1644 100644 --- a/gaseous-server/wwwroot/pages/dialogs/settingsusernew.html +++ b/gaseous-server/wwwroot/pages/dialogs/settingsusernew.html @@ -28,6 +28,9 @@ + + + @@ -75,14 +78,27 @@ '/api/v1.1/Account/Users', 'POST', function(result) { - GetUsers(); - closeSubDialog(); + createUserCallback(result); }, function(error) { - GetUsers(); - closeSubDialog(); + createUserCallback(result); }, JSON.stringify(model) ); } + + function createUserCallback(result) { + if (result.succeeded == true) { + GetUsers(); + closeSubDialog(); + } else { + var errorBox = document.getElementById('settings_users_new_errors'); + errorBox.innerHTML = ''; + for (var i = 0; i < result.errors.length; i++) { + var errorMessage = document.createElement('p'); + errorMessage.innerHTML = result.errors[i].description; + errorBox.appendChild(errorMessage); + } + } + } \ No newline at end of file diff --git a/gaseous-server/wwwroot/pages/dialogs/userprofile.html b/gaseous-server/wwwroot/pages/dialogs/userprofile.html index 56655a9..2bc44f2 100644 --- a/gaseous-server/wwwroot/pages/dialogs/userprofile.html +++ b/gaseous-server/wwwroot/pages/dialogs/userprofile.html @@ -20,6 +20,9 @@ + + + @@ -106,9 +109,16 @@ function ResetPasswordCallback(result) { var errorLabel = document.getElementById('profile_passwordnotice'); + var errorBox = document.getElementById('profile_passworderrors'); + errorBox.innerHTML = ''; - if (result.succeeded == false) { - errorLabel.innerHTML = result.errors.description; + console.log(result); + if (result.responseJSON.succeeded == false) { + for (var i = 0; i < result.responseJSON.errors.length; i++) { + var errorMessage = document.createElement('p'); + errorMessage.innerHTML = result.responseJSON.errors[i].description; + errorBox.appendChild(errorMessage); + } } else { document.getElementById('profile_oldpassword').value = ''; document.getElementById('profile_newpassword').value = ''; diff --git a/gaseous-server/wwwroot/pages/first.html b/gaseous-server/wwwroot/pages/first.html index 17813d1..51d4b55 100644 --- a/gaseous-server/wwwroot/pages/first.html +++ b/gaseous-server/wwwroot/pages/first.html @@ -63,7 +63,7 @@ - + @@ -80,6 +80,9 @@ + + + + + +
Create your account.Create your administrator account.
Email
 
@@ -154,13 +157,19 @@ } function loginCallback(result) { - switch(result.status) { - case 200: - window.location.replace('/index.html'); - break; - default: - // login failed - break; + var errorLabel = document.getElementById('login_passwordnotice'); + var errorBox = document.getElementById('login_passworderrors'); + errorBox.innerHTML = ''; + + console.log(result); + if (result.succeeded == false) { + for (var i = 0; i < result.errors.length; i++) { + var errorMessage = document.createElement('p'); + errorMessage.innerHTML = result.errors[i].description; + errorBox.appendChild(errorMessage); + } + } else { + window.location.replace('/index.html'); } } diff --git a/gaseous-server/wwwroot/pages/login.html b/gaseous-server/wwwroot/pages/login.html index 99d35de..230caad 100644 --- a/gaseous-server/wwwroot/pages/login.html +++ b/gaseous-server/wwwroot/pages/login.html @@ -66,6 +66,9 @@
@@ -120,6 +123,7 @@ break; default: // login failed + document.getElementById('login_errorlabel').innerHTML = 'Incorrect password'; break; } }