Registration and password reset updates

This commit is contained in:
2020-01-27 22:01:05 -05:00
parent 8e32a03b32
commit 34f3247efe
5 changed files with 44 additions and 42 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ NOTES:
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
* A new version will invalidate both client and server cache and create new persisted files
-->
<clientDependency version="1230030195" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<clientDependency version="1232230195" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<!--
This section is used for Web Forms only, the enableCompositeFiles="true" is optional and by default is set to true.
+26 -11
View File
@@ -1,4 +1,6 @@
using System.Web.Mvc;
using System;
using System.Web.Mvc;
using System.Web.Security;
using Hangfire;
using LeafWeb.WebCms.Models;
using LeafWeb.WebCms.Services;
@@ -47,11 +49,12 @@ namespace LeafWeb.WebCms.Controllers
// remove the verification
member.SetValue(LeafWebMemberProperties.VerificationToken, string.Empty);
memberService.Save(member);
TempData["StatusMessage"] = "Thank you! Your email is now verified at " + member.Email;
TempData["StatusMessage"] =
$"Thank you! Your email is now verified at {member.Email}, use your password to login.";
TempData["StatusMessage-Type"] = "alert-success";
// TODO: change redirectUrl to their own page
redirectUrl = "membership/login";
}
}
@@ -173,16 +176,28 @@ namespace LeafWeb.WebCms.Controllers
}
else
{
memberService.SavePassword(member, form.Password);
try
{
memberService.SavePassword(member, form.Password);
// remove the token
member.SetValue(LeafWebMemberProperties.PasswordResetToken, string.Empty);
memberService.Save(member);
// remove the token
member.SetValue(LeafWebMemberProperties.PasswordResetToken, string.Empty);
memberService.Save(member);
TempData["StatusMessage"] = "Password updated for " + member.Email + ", use your new password to login.";
TempData["StatusMessage-Type"] = "alert-success";
TempData["StatusMessage"] =
$"Password updated for {member.Email}, use your new password to login.";
TempData["StatusMessage-Type"] = "alert-success";
redirectUrl = "membership/login";
redirectUrl = "/membership/login";
}
catch (MembershipPasswordException)
{
ModelState.AddModelError("Password", "Please choose a stronger password");
form.Password = form.PasswordVerify = string.Empty;
return CurrentUmbracoPage();
//return PartialView(form);
}
}
}
}
+3
View File
@@ -15,6 +15,9 @@ namespace LeafWeb.WebCms.Models
[Required(ErrorMessage = "A new password is required")]
[DataType(DataType.Password)]
[RegularExpression(
@"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$",
ErrorMessage = "Minimum 8 characters and at least one letter and one number")]
public string Password { get; set; }
[Display(Name = "Verify New Password")]
@@ -25,7 +25,8 @@
<div class="col-lg-6 card card-body bg-light">
@if (success || (!user?.IsApproved ?? false))
{
<p><span class="fa fa-check text-primary"></span> Registration succeeded. Please check your email to verify your account.</p>
<h2 class="text-center"><span class="fa fa-check text-primary"></span> </h2>
<p>Registration succeeded. Please check your email to verify your account.</p>
}
else if (user != null)
{
@@ -43,39 +44,11 @@ else
@Html.EditorFor(m => registerModel.Name)
@Html.EditorFor(m => registerModel.Email, new { type = "email"})
@Html.EditorFor(m => registerModel.Password, "Password")
@*<div class="form-group">
@Html.LabelFor(m => registerModel.Name)
@Html.TextBoxFor(m => registerModel.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(m => registerModel.Name, "", new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.LabelFor(m => registerModel.Email)
@Html.TextBoxFor(m => registerModel.Email, new { @class = "form-control" })
@Html.ValidationMessageFor(m => registerModel.Email, "", new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.LabelFor(m => registerModel.Password)
@Html.PasswordFor(m => registerModel.Password, new { @class = "form-control" })
@Html.ValidationMessageFor(m => registerModel.Password, "", new { @class = "text-danger" })
</div>*@
<div class="form-group verifyPassword">
@Html.Label("VerifyPassword")
@Html.Password("VerifyPassword", null, new { @class = "form-control" })
@Html.ValidationMessage("VerifyPassword", "", new { @class = "text-danger" })
</div>
@*if (registerModel.MemberProperties != null)
{
for (var i = 0; i < registerModel.MemberProperties.Count; i++)
{
<div class="form-group">
@Html.LabelFor(m => registerModel.MemberProperties[i].Value, registerModel.MemberProperties[i].Name)
@Html.EditorFor(m => registerModel.MemberProperties[i].Value, new { @class = "form-control" })
@Html.HiddenFor(m => registerModel.MemberProperties[i].Alias)
</div>
}
}*@
@Html.HiddenFor(m => registerModel.MemberTypeAlias)
@Html.HiddenFor(m => registerModel.RedirectUrl)
@Html.HiddenFor(m => registerModel.UsernameIsEmail)
+12 -1
View File
@@ -1,5 +1,14 @@
$(function () {
$("#register-member").validate();
$("#registerModel_Password")
.rules("add",
{
regex: "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$",
messages: {
regex: "Minimum 8 characters and at least one letter and one number"
}
}
);
$('#VerifyPassword')
.rules("add",
{
@@ -15,8 +24,10 @@
.rules("add",
{
required: true,
regex: "^[A-Za-z().]+(\\s+[A-Za-z().]+)+$",
messages: {
required: "Name is required"
required: "Name is required",
regex: "Please provide your full name"
}
}
);