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"] = $"Sorry, user with email {email} not found. Please try to register again, or use Contact Us to resolve the issue."; 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"] = $"Sorry, your token cannot be found. Please try to register again, or use Contact Us to resolve the issue."; 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"] = "Thank you! Your email is now verified at " + member.Email; TempData["StatusMessage-Type"] = "alert-success"; // TODO: change redirectUrl to their own page } } return Redirect(redirectUrl); } } }