Add membership verification

This commit is contained in:
2019-12-21 16:27:46 -05:00
parent 0139d66d63
commit e0464cb77c
10 changed files with 108 additions and 21 deletions
@@ -0,0 +1,57 @@
using System.Web.Mvc;
using Umbraco.Core;
namespace LeafWeb.WebCms.Controllers
{
public class MembershipController : BaseController
{
public ActionResult Verify(string email, string token)
{
var redirectUrl = "/";
var memberService = ApplicationContext.Current.Services.MemberService;
var member = memberService.GetByEmail(email);
if (member == null)
{
TempData["StatusMessage"] = $"User with email {email} not found.";
TempData["StatusMessage-Type"] = "alert-danger";
}
else if (member.IsApproved)
{
TempData["StatusMessage"] = "You've already been verified, " + member.Name;
TempData["StatusMessage-Type"] = "alert-info";
}
else
{
var storedToken = member.GetValue("VerificationToken") as string;
if (string.IsNullOrEmpty(storedToken))
{
TempData["StatusMessage"] = $"No verification token exists for this user.";
TempData["StatusMessage-Type"] = "alert-danger";
}
else if (storedToken != token)
{
TempData["StatusMessage"] = $"Bad token.";
TempData["StatusMessage-Type"] = "alert-danger";
}
else
{
// member is now verified
member.IsApproved = true;
// remove the verification
member.SetValue("VerificationToken", string.Empty);
memberService.Save(member);
TempData["StatusMessage"] = "You have been verified, " + member.Name;
TempData["StatusMessage-Type"] = "alert-success";
// TODO: rewrite url to their own page
}
}
return Redirect(redirectUrl);
}
}
}