diff --git a/BeWo/PasswortSecurity/PasswortSicherheit.cs b/BeWo/PasswortSecurity/PasswortSicherheit.cs
index 4237566de..861660551 100644
--- a/BeWo/PasswortSecurity/PasswortSicherheit.cs
+++ b/BeWo/PasswortSecurity/PasswortSicherheit.cs
@@ -47,107 +47,107 @@ namespace BeWo.PasswortSecurity
*/
#region Passwort Stärke Ermitteln und Anzeigen
- public static Label ShowPasswordStrengthLabel(string passwordToValidate, Label passwordStrengthLabel)
- {
- var passwordStrength = CalculatePasswordStrength(passwordToValidate);
+ //public static Label ShowPasswordStrengthLabel(string passwordToValidate, Label passwordStrengthLabel)
+ //{
+ // var passwordStrength = CalculatePasswordStrength(passwordToValidate);
- var visibility = Visibility.Visible;
- var content = "Passwortstärke: ";
- var foreground = new SolidColorBrush(Colors.Black);
+ // var visibility = Visibility.Visible;
+ // var content = "Passwortstärke: ";
+ // var foreground = new SolidColorBrush(Colors.Black);
- switch(passwordStrength)
- {
- case 0:
- content += "sehr schwach";
- foreground = new SolidColorBrush(Colors.Red);
- break;
- case 1:
- content += "schwach";
- foreground = new SolidColorBrush(Colors.OrangeRed);
- break;
- case 2:
- content += "mittel";
- foreground = new SolidColorBrush(Colors.Yellow);
- break;
- case 3:
- content += "stark";
- foreground = new SolidColorBrush(Colors.Green);
- break;
- case 4:
- content += "sehr stark";
- foreground = new SolidColorBrush(Colors.Green);
- break;
- default:
- visibility = Visibility.Hidden;
- content = string.Empty;
- break;
- }
+ // switch(passwordStrength)
+ // {
+ // case 0:
+ // content += "sehr schwach";
+ // foreground = new SolidColorBrush(Colors.Red);
+ // break;
+ // case 1:
+ // content += "schwach";
+ // foreground = new SolidColorBrush(Colors.OrangeRed);
+ // break;
+ // case 2:
+ // content += "mittel";
+ // foreground = new SolidColorBrush(Colors.Yellow);
+ // break;
+ // case 3:
+ // content += "stark";
+ // foreground = new SolidColorBrush(Colors.Green);
+ // break;
+ // case 4:
+ // content += "sehr stark";
+ // foreground = new SolidColorBrush(Colors.Green);
+ // break;
+ // default:
+ // visibility = Visibility.Hidden;
+ // content = string.Empty;
+ // break;
+ // }
- passwordStrengthLabel.Visibility = visibility;
- passwordStrengthLabel.Foreground = foreground;
- passwordStrengthLabel.Content = content;
+ // passwordStrengthLabel.Visibility = visibility;
+ // passwordStrengthLabel.Foreground = foreground;
+ // passwordStrengthLabel.Content = content;
- return passwordStrengthLabel;
- }
+ // return passwordStrengthLabel;
+ //}
- private static int CalculatePasswordStrength(string passwordToValidate)
- {
- var length = passwordToValidate?.Length ?? 0;
- if(string.IsNullOrEmpty(passwordToValidate) || length < 6)
- {
- return -1;
- }
+ //private static int CalculatePasswordStrength(string passwordToValidate)
+ //{
+ // var length = passwordToValidate?.Length ?? 0;
+ // if(string.IsNullOrEmpty(passwordToValidate) || length < 6)
+ // {
+ // return -1;
+ // }
- var score = 0;
+ // var score = 0;
- if(length < 9)
- {
- score += 1;
- }
- else if(length < 12)
- {
- score += 2;
- }
- else if(length < 18)
- {
- score += 3;
- }
- else
- {
- score += 4;
- }
+ // if(length < 9)
+ // {
+ // score += 1;
+ // }
+ // else if(length < 12)
+ // {
+ // score += 2;
+ // }
+ // else if(length < 18)
+ // {
+ // score += 3;
+ // }
+ // else
+ // {
+ // score += 4;
+ // }
- var numberCount = passwordToValidate.Count(c => Numbers.Contains(c));
- var lowercaseLetterCount = passwordToValidate.Count(c => LowercaseLetters.Contains(c));
- var uppercaseLetterCount = passwordToValidate.Count(c => UppercaseLetters.Contains(c));
- var lowercaseUmlautsCount = passwordToValidate.Count(c => LowercaseUmlauts.Contains(c));
- var uppercaseUmlautsCount = passwordToValidate.Count(c => UppercaseUmlauts.Contains(c));
- var specialCharacterCount = passwordToValidate.Count(c => SpecialCharacters.Contains(c));
+ // var numberCount = passwordToValidate.Count(c => Numbers.Contains(c));
+ // var lowercaseLetterCount = passwordToValidate.Count(c => LowercaseLetters.Contains(c));
+ // var uppercaseLetterCount = passwordToValidate.Count(c => UppercaseLetters.Contains(c));
+ // var lowercaseUmlautsCount = passwordToValidate.Count(c => LowercaseUmlauts.Contains(c));
+ // var uppercaseUmlautsCount = passwordToValidate.Count(c => UppercaseUmlauts.Contains(c));
+ // var specialCharacterCount = passwordToValidate.Count(c => SpecialCharacters.Contains(c));
- score += numberCount * 3;
- score += lowercaseLetterCount * 2;
- score += uppercaseLetterCount * 3;
- score += lowercaseUmlautsCount * 2;
- score += uppercaseUmlautsCount * 2;
- score += specialCharacterCount * 4;
+ // score += numberCount * 3;
+ // score += lowercaseLetterCount * 2;
+ // score += uppercaseLetterCount * 3;
+ // score += lowercaseUmlautsCount * 2;
+ // score += uppercaseUmlautsCount * 2;
+ // score += specialCharacterCount * 4;
- if(score < 16)
- {
- return 0;
- }
+ // if(score < 16)
+ // {
+ // return 0;
+ // }
- if(score < 56)
- {
- return 1;
- }
+ // if(score < 56)
+ // {
+ // return 1;
+ // }
- if(score < 116)
- {
- return 2;
- }
+ // if(score < 116)
+ // {
+ // return 2;
+ // }
- return score < 156 ? 3 : 4;
- }
+ // return score < 156 ? 3 : 4;
+ //}
// Score, PreivousValue, Schalter, und LetzteWerte werden im Objekt gepeichert.
public Label ErmittleUndZeigePasswortStaerke(string passwordToValidate, Label passwordLabel)
diff --git a/BeWoPlanerMobil/BeWoPlanerMobil.csproj b/BeWoPlanerMobil/BeWoPlanerMobil.csproj
index f200008f4..ee4e2dc55 100644
--- a/BeWoPlanerMobil/BeWoPlanerMobil.csproj
+++ b/BeWoPlanerMobil/BeWoPlanerMobil.csproj
@@ -296,6 +296,7 @@
Bitte ändern Sie Ihr Passwort, indem Sie im Menü auf 'Password ändern' klicken.";
+ break;
+ case 1:
+ tempDataValue = "Sie benutzen ein schwaches Passwort.
Bitte ändern Sie Ihr Passwort, indem Sie im Menü auf 'Password ändern' klicken.";
+ break;
+ }
+
+ if(!string.IsNullOrEmpty(tempDataValue))
+ {
+ TempData["show_pw_change_popup"] = tempDataValue;
+ }
+ }
}
var mandatorSettings = Model.Mandator.Settings;
@@ -3807,14 +3832,23 @@ namespace BeWoPlanerMobil.Controllers
return RedirectToActionPermanent("Main");
}
+ var passwordUtils = new PasswordUtils();
+ if(passwordUtils.EvaluatePasswordStrength(newPassword) < 2)
+ {
+ var checkResult = UserService.CheckPassword(MobileSessionFacade.LoggedInUser.Oid.Value, oldPassword, newPassword);
+
+ if(!(checkResult is null))
+ {
+ TempData["passwd-change-error"] = checkResult;
+ return RedirectToActionPermanent("Main");
+ }
+ }
+
var userName = MobileSessionFacade.LoggedInUserDC.LoginName;
var userVersion = MobileSessionFacade.LoggedInUserDC.UserVersion.Value;
- // ToDo: Testen! falsches oldPassword, kein oldPassword, newPassword stimmt nicht mit confirmationPassword überein, kein confirmationPassword, kein newPassword
UserService.ChangePassword(userName, userVersion, oldPassword, newPassword);
- // ToDo: Regeln beachten, welche Passwortstärke mindestens erreicht werden muss.
-
return RedirectToActionPermanent("Main");
}
}
diff --git a/BeWoPlanerMobil/Models/MainModel.cs b/BeWoPlanerMobil/Models/MainModel.cs
index dd8d812ce..163746097 100644
--- a/BeWoPlanerMobil/Models/MainModel.cs
+++ b/BeWoPlanerMobil/Models/MainModel.cs
@@ -671,7 +671,6 @@ namespace BeWoPlanerMobil.Models
public bool IsOnlyYearMonthVisible { get; set; }
-
#region Mehrfachbuchung
private bool _IsInMultiBookingMode;
@@ -725,9 +724,11 @@ namespace BeWoPlanerMobil.Models
}
}
+ #endregion
+
public MandatorDC Mandator { get; set; }
- #endregion
+ public bool IsPasswordSecurityEnabled { get; set; }
}
public class CustomSelectListItem
diff --git a/BeWoPlanerMobil/Scripts/mobileUtils.js b/BeWoPlanerMobil/Scripts/mobileUtils.js
index a9dc47602..4f8ab7cea 100644
--- a/BeWoPlanerMobil/Scripts/mobileUtils.js
+++ b/BeWoPlanerMobil/Scripts/mobileUtils.js
@@ -82,22 +82,22 @@ function submitForm(submitButton) {
submitButton.form.submit();
}
-function showMessagePopupWithHtml(title, html) {
- $("#popupTitle").text(title);
+//function showMessagePopupWithHtml(title, html) {
+// $("#popupTitle").text(title);
- if(html !== null) {
- $("#modal-body").html("