Registration and password reset updates
This commit is contained in:
@@ -10,7 +10,7 @@ NOTES:
|
|||||||
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
|
* 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
|
* 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.
|
This section is used for Web Forms only, the enableCompositeFiles="true" is optional and by default is set to true.
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
using System.Web.Mvc;
|
using System;
|
||||||
|
using System.Web.Mvc;
|
||||||
|
using System.Web.Security;
|
||||||
using Hangfire;
|
using Hangfire;
|
||||||
using LeafWeb.WebCms.Models;
|
using LeafWeb.WebCms.Models;
|
||||||
using LeafWeb.WebCms.Services;
|
using LeafWeb.WebCms.Services;
|
||||||
@@ -48,10 +50,11 @@ namespace LeafWeb.WebCms.Controllers
|
|||||||
member.SetValue(LeafWebMemberProperties.VerificationToken, string.Empty);
|
member.SetValue(LeafWebMemberProperties.VerificationToken, string.Empty);
|
||||||
memberService.Save(member);
|
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";
|
TempData["StatusMessage-Type"] = "alert-success";
|
||||||
|
|
||||||
// TODO: change redirectUrl to their own page
|
redirectUrl = "membership/login";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,6 +175,8 @@ namespace LeafWeb.WebCms.Controllers
|
|||||||
TempData["StatusMessage-Type"] = "alert-danger";
|
TempData["StatusMessage-Type"] = "alert-danger";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
memberService.SavePassword(member, form.Password);
|
memberService.SavePassword(member, form.Password);
|
||||||
|
|
||||||
@@ -179,10 +184,20 @@ namespace LeafWeb.WebCms.Controllers
|
|||||||
member.SetValue(LeafWebMemberProperties.PasswordResetToken, string.Empty);
|
member.SetValue(LeafWebMemberProperties.PasswordResetToken, string.Empty);
|
||||||
memberService.Save(member);
|
memberService.Save(member);
|
||||||
|
|
||||||
TempData["StatusMessage"] = "Password updated for " + member.Email + ", use your new password to login.";
|
TempData["StatusMessage"] =
|
||||||
|
$"Password updated for {member.Email}, use your new password to login.";
|
||||||
TempData["StatusMessage-Type"] = "alert-success";
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ namespace LeafWeb.WebCms.Models
|
|||||||
|
|
||||||
[Required(ErrorMessage = "A new password is required")]
|
[Required(ErrorMessage = "A new password is required")]
|
||||||
[DataType(DataType.Password)]
|
[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; }
|
public string Password { get; set; }
|
||||||
|
|
||||||
[Display(Name = "Verify New Password")]
|
[Display(Name = "Verify New Password")]
|
||||||
|
|||||||
@@ -25,7 +25,8 @@
|
|||||||
<div class="col-lg-6 card card-body bg-light">
|
<div class="col-lg-6 card card-body bg-light">
|
||||||
@if (success || (!user?.IsApproved ?? false))
|
@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)
|
else if (user != null)
|
||||||
{
|
{
|
||||||
@@ -43,39 +44,11 @@ else
|
|||||||
@Html.EditorFor(m => registerModel.Name)
|
@Html.EditorFor(m => registerModel.Name)
|
||||||
@Html.EditorFor(m => registerModel.Email, new { type = "email"})
|
@Html.EditorFor(m => registerModel.Email, new { type = "email"})
|
||||||
@Html.EditorFor(m => registerModel.Password, "Password")
|
@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">
|
<div class="form-group verifyPassword">
|
||||||
@Html.Label("VerifyPassword")
|
@Html.Label("VerifyPassword")
|
||||||
@Html.Password("VerifyPassword", null, new { @class = "form-control" })
|
@Html.Password("VerifyPassword", null, new { @class = "form-control" })
|
||||||
@Html.ValidationMessage("VerifyPassword", "", new { @class = "text-danger" })
|
@Html.ValidationMessage("VerifyPassword", "", new { @class = "text-danger" })
|
||||||
</div>
|
</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.MemberTypeAlias)
|
||||||
@Html.HiddenFor(m => registerModel.RedirectUrl)
|
@Html.HiddenFor(m => registerModel.RedirectUrl)
|
||||||
@Html.HiddenFor(m => registerModel.UsernameIsEmail)
|
@Html.HiddenFor(m => registerModel.UsernameIsEmail)
|
||||||
|
|||||||
@@ -1,5 +1,14 @@
|
|||||||
$(function () {
|
$(function () {
|
||||||
$("#register-member").validate();
|
$("#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')
|
$('#VerifyPassword')
|
||||||
.rules("add",
|
.rules("add",
|
||||||
{
|
{
|
||||||
@@ -15,8 +24,10 @@
|
|||||||
.rules("add",
|
.rules("add",
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
|
regex: "^[A-Za-z().]+(\\s+[A-Za-z().]+)+$",
|
||||||
messages: {
|
messages: {
|
||||||
required: "Name is required"
|
required: "Name is required",
|
||||||
|
regex: "Please provide your full name"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user