Making messages of register.cshtml consistent with the User settings (#8301)

This commit is contained in:
Hermes Sbicego
2019-12-19 21:25:45 +01:00
committed by Sébastien Ros
parent 40eca06645
commit e47aca5914
6 changed files with 158 additions and 34 deletions

View File

@@ -126,6 +126,10 @@ namespace Orchard.Users.Controllers {
}
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
var shape = _orchardServices.New.Register();
@@ -143,6 +147,10 @@ namespace Orchard.Users.Controllers {
}
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
if (ValidateRegistration(userName, email, password, confirmPassword)) {
// Attempt to register the user
@@ -224,6 +232,10 @@ namespace Orchard.Users.Controllers {
public ActionResult ChangePassword() {
var membershipSettings = _membershipService.GetSettings();
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
ViewData["InvalidateOnPasswordChange"] = _orchardServices.WorkContext
.CurrentSite.As<SecuritySettingsPart>()
@@ -241,6 +253,10 @@ namespace Orchard.Users.Controllers {
public ActionResult ChangePassword(string currentPassword, string newPassword, string confirmPassword) {
var membershipSettings = _membershipService.GetSettings();
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
ViewData["InvalidateOnPasswordChange"] = _orchardServices.WorkContext
.CurrentSite.As<SecuritySettingsPart>()
.ShouldInvalidateAuthOnPasswordChanged;
@@ -268,7 +284,11 @@ namespace Orchard.Users.Controllers {
var viewModel = _orchardServices.New.ViewModel(
Username: username,
PasswordLength: membershipSettings.GetMinimumPasswordLength());
PasswordLength: membershipSettings.GetMinimumPasswordLength(),
LowercaseRequirement: membershipSettings.GetPasswordLowercaseRequirement(),
UppercaseRequirement: membershipSettings.GetPasswordUppercaseRequirement(),
SpecialCharacterRequirement: membershipSettings.GetPasswordSpecialRequirement(),
NumberRequirement: membershipSettings.GetPasswordNumberRequirement());
return View(viewModel);
}
@@ -278,7 +298,11 @@ namespace Orchard.Users.Controllers {
var membershipSettings = _membershipService.GetSettings();
var viewModel = _orchardServices.New.ViewModel(
Username: username,
PasswordLength: membershipSettings.GetMinimumPasswordLength());
PasswordLength: membershipSettings.GetMinimumPasswordLength(),
LowercaseRequirement: membershipSettings.GetPasswordLowercaseRequirement(),
UppercaseRequirement: membershipSettings.GetPasswordUppercaseRequirement(),
SpecialCharacterRequirement: membershipSettings.GetPasswordSpecialRequirement(),
NumberRequirement: membershipSettings.GetPasswordNumberRequirement());
if (!ValidateChangePassword(currentPassword, newPassword, confirmPassword)) {
return View(viewModel);
@@ -326,7 +350,10 @@ namespace Orchard.Users.Controllers {
var membershipSettings = _membershipService.GetSettings();
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
return View();
}
@@ -341,6 +368,10 @@ namespace Orchard.Users.Controllers {
var membershipSettings = _membershipService.GetSettings();
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
ValidatePassword(newPassword);

View File

@@ -3,5 +3,17 @@
public static int GetMinimumPasswordLength(this IMembershipSettings membershipSettings) {
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.MinimumPasswordLength : 7;
}
public static bool GetPasswordLowercaseRequirement(this IMembershipSettings membershipSettings) {
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.EnablePasswordLowercaseRequirement : false;
}
public static bool GetPasswordUppercaseRequirement(this IMembershipSettings membershipSettings) {
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.EnablePasswordUppercaseRequirement : false;
}
public static bool GetPasswordNumberRequirement(this IMembershipSettings membershipSettings) {
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.EnablePasswordNumberRequirement : false;
}
public static bool GetPasswordSpecialRequirement(this IMembershipSettings membershipSettings) {
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.EnablePasswordSpecialRequirement : false;
}
}
}

View File

@@ -1,7 +1,28 @@
@model dynamic
@{
var requirementsMessage = T.Plural("The password can't be empty", "Passwords are required to be a minimum of {0} characters in length", (int)Model.PasswordLength).Text;
var additionalRequirementsMessage = new List<string>();
if ((bool)Model.LowercaseRequirement) {
additionalRequirementsMessage.Add(T("one lowercase letter").Text);
}
if ((bool)Model.UppercaseRequirement) {
additionalRequirementsMessage.Add(T("one uppercase letter").Text);
}
if ((bool)Model.NumberRequirement) {
additionalRequirementsMessage.Add(T("one number").Text);
}
if ((bool)Model.SpecialCharacterRequirement) {
additionalRequirementsMessage.Add(T("one special character").Text);
}
if (additionalRequirementsMessage.Count() > 0) {
requirementsMessage = T("{0} and must contain at least {1}", requirementsMessage, string.Join(", ", additionalRequirementsMessage)).Text;
}
requirementsMessage += ".";
}
<h1>@Html.TitleForPage(T("Change Expired Password"))</h1>
<p>@T("Your password has expired. Use the form below to change your password.")</p>
<p>@T.Plural("The password can't be empty.", "Passwords are required to be a minimum of {0} characters in length.", (int)Model.PasswordLength)</p>
<p>@requirementsMessage</p>
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").Text)
@using (Html.BeginFormAntiForgeryPost()) {
<fieldset>

View File

@@ -1,31 +1,51 @@
@model dynamic
@{
var requirementsMessage = T.Plural("The password can't be empty", "Passwords are required to be a minimum of {0} characters in length", (int)ViewData["PasswordLength"]).Text;
var additionalRequirementsMessage = new List<string>();
if ((bool)ViewData["LowercaseRequirement"]) {
additionalRequirementsMessage.Add(T("one lowercase letter").Text);
}
if ((bool)ViewData["UppercaseRequirement"]) {
additionalRequirementsMessage.Add(T("one uppercase letter").Text);
}
if ((bool)ViewData["NumberRequirement"]) {
additionalRequirementsMessage.Add(T("one number").Text);
}
if ((bool)ViewData["SpecialCharacterRequirement"]) {
additionalRequirementsMessage.Add(T("one special character").Text);
}
if (additionalRequirementsMessage.Count() > 0) {
requirementsMessage = T("{0} and must contain at least {1}", requirementsMessage, string.Join(", ", additionalRequirementsMessage)).Text;
}
requirementsMessage += ".";
}
<h1>@Html.TitleForPage(T("Change Password").ToString()) </h1>
<p>@T("Use the form below to change your password.")</p>
<p>@T.Plural("The password can't be empty.", "New passwords are required to be a minimum of {0} characters in length.", (int)ViewData["PasswordLength"])</p>
<p>@requirementsMessage</p>
@if ((bool)ViewData["InvalidateOnPasswordChange"]) {
<p>@T("After changing the password you will be required to login anew.")</p>
}
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").ToString())
@using (Html.BeginFormAntiForgeryPost()) {
@using (Html.BeginFormAntiForgeryPost()) {
<fieldset>
<legend>@T("Account Information")</legend>
<div>
<div>
<label for="currentPassword">@T("Current password:")</label>
@Html.Password("currentPassword")
@Html.ValidationMessage("currentPassword")
</div>
@Html.Password("currentPassword")
@Html.ValidationMessage("currentPassword")
</div>
<div>
<label for="newPassword">@T("New password:")</label>
@Html.Password("newPassword")
@Html.ValidationMessage("newPassword")
@Html.Password("newPassword")
@Html.ValidationMessage("newPassword")
</div>
<div>
<label for="confirmPassword">@T("Confirm new password:")</label>
@Html.Password("confirmPassword")
@Html.ValidationMessage("confirmPassword")
@Html.Password("confirmPassword")
@Html.ValidationMessage("confirmPassword")
</div>
<div>
<button class="primaryAction" type="submit">@T("Change Password")</button>
</div>
</fieldset>
}
}

View File

@@ -1,23 +1,43 @@
@model dynamic
@{
var requirementsMessage = T.Plural("The password can't be empty", "Passwords are required to be a minimum of {0} characters in length", (int)ViewData["PasswordLength"]).Text;
var additionalRequirementsMessage = new List<string>();
if ((bool)ViewData["LowercaseRequirement"]) {
additionalRequirementsMessage.Add(T("one lowercase letter").Text);
}
if ((bool)ViewData["UppercaseRequirement"]) {
additionalRequirementsMessage.Add(T("one uppercase letter").Text);
}
if ((bool)ViewData["NumberRequirement"]) {
additionalRequirementsMessage.Add(T("one number").Text);
}
if ((bool)ViewData["SpecialCharacterRequirement"]) {
additionalRequirementsMessage.Add(T("one special character").Text);
}
if (additionalRequirementsMessage.Count() > 0) {
requirementsMessage = T("{0} and must contain at least {1}", requirementsMessage, string.Join(", ", additionalRequirementsMessage)).Text;
}
requirementsMessage += ".";
}
<h1>@Html.TitleForPage(T("Change Password").ToString()) </h1>
<p>@T("Use the form below to change your password.")</p>
<p>@T.Plural("The password can't be empty.", "New passwords are required to be a minimum of {0} characters in length.", (int)ViewData["PasswordLength"])</p>
<p>@requirementsMessage</p>
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").ToString())
@using (Html.BeginFormAntiForgeryPost()) {
@using (Html.BeginFormAntiForgeryPost()) {
<fieldset>
<legend>@T("Account Information")</legend>
<div>
<label for="newPassword">@T("New password:")</label>
@Html.Password("newPassword")
@Html.ValidationMessage("newPassword")
@Html.Password("newPassword")
@Html.ValidationMessage("newPassword")
</div>
<div>
<label for="confirmPassword">@T("Confirm new password:")</label>
@Html.Password("confirmPassword")
@Html.ValidationMessage("confirmPassword")
@Html.Password("confirmPassword")
@Html.ValidationMessage("confirmPassword")
</div>
<div>
<button class="primaryAction" type="submit">@T("Change Password")</button>
</div>
</fieldset>
}
}

View File

@@ -1,32 +1,52 @@
<h1>@Html.TitleForPage(T("Create a New Account").ToString())</h1>
@{
var requirementsMessage = T.Plural("The password can't be empty", "Passwords are required to be a minimum of {0} characters in length", (int)ViewData["PasswordLength"]).Text;
var additionalRequirementsMessage = new List<string>();
if ((bool)ViewData["LowercaseRequirement"]) {
additionalRequirementsMessage.Add(T("one lowercase letter").Text);
}
if ((bool)ViewData["UppercaseRequirement"]) {
additionalRequirementsMessage.Add(T("one uppercase letter").Text);
}
if ((bool)ViewData["NumberRequirement"]) {
additionalRequirementsMessage.Add(T("one number").Text);
}
if ((bool)ViewData["SpecialCharacterRequirement"]) {
additionalRequirementsMessage.Add(T("one special character").Text);
}
if (additionalRequirementsMessage.Count() > 0) {
requirementsMessage = T("{0} and must contain at least {1}", requirementsMessage, string.Join(", ", additionalRequirementsMessage)).Text;
}
requirementsMessage += ".";
}
<h1>@Html.TitleForPage(T("Create a New Account").ToString())</h1>
<p>@T("Use the form below to create a new account.")</p>
<p>@T.Plural("The password can't be empty.", "Passwords are required to be a minimum of {0} characters in length.", (int)ViewData["PasswordLength"])</p>
@Html.ValidationSummary(T("Account creation was unsuccessful. Please correct the errors and try again.").ToString())
@using (Html.BeginFormAntiForgeryPost(Url.Action("Register", new { ReturnUrl = Request.QueryString["ReturnUrl"] }))) {
<p>@requirementsMessage</p>
@Html.ValidationSummary(T("Account creation was unsuccessful. Please correct the errors and try again.").ToString())
@using (Html.BeginFormAntiForgeryPost(Url.Action("Register", new { ReturnUrl = Request.QueryString["ReturnUrl"] }))) {
<fieldset>
<legend>@T("Account Information")</legend>
<div>
<label for="username">@T("Username:")</label>
@Html.TextBox("username")
@Html.ValidationMessage("username")
@Html.TextBox("username")
@Html.ValidationMessage("username")
</div>
<div>
<label for="email">@T("Email:")</label>
@Html.TextBox("email")
@Html.TextBox("email")
@Html.ValidationMessage("email")
</div>
<div>
<label for="password">@T("Password:")</label>
@Html.Password("password")
@Html.ValidationMessage("password")
@Html.Password("password")
@Html.ValidationMessage("password")
</div>
<div>
<label for="confirmPassword">@T("Confirm password:")</label>
@Html.Password("confirmPassword")
@Html.ValidationMessage("confirmPassword")
@Html.Password("confirmPassword")
@Html.ValidationMessage("confirmPassword")
</div>
<div>
<button class="primaryAction" type="submit">@T("Register")</button>
</div>
</fieldset>
}
}