Add membership verification
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user