public ActionResult ForgotPassword(ForgotPasswordUser forgotPasswordUser) { var appUserContactEmail = forgotPasswordUser.ContactEmail; var _userBusinessLogic = new UserBusinessLogic(); var invitationManager = new InvitationManager(); if (!string.IsNullOrEmpty(appUserContactEmail)) { try { var valid = Regex.IsMatch(appUserContactEmail, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase); if (!valid) { TempData.Remove("EmailAddressError"); TempData.Add("EmailAddressError", "Please use a valid email address."); return(View("ForgotPassword")); } var currentUrl = Request.Url; var user = _userBusinessLogic.GetByEmail(appUserContactEmail); bool sent = false; if (user != null) { //Session["appUser"] = user.AppUser; var applicationUser = user.AppUser; sent = _userBusinessLogic.SendResetPasswordEmail( applicationUser.ContactEmail, applicationUser.PrincipalId, currentUrl, applicationUser.Tenancy); return(RedirectToAction(sent ? "ForgotEmailSendConfirmation" : "ForgotPassword")); } var systemOwner = _userBusinessLogic.GetSuperAdmin(appUserContactEmail); if (systemOwner != null) { //Session["appUser"] = systemOwner; sent = _userBusinessLogic.SendResetPasswordEmail( systemOwner.ContactEmail, systemOwner.PrincipalId, currentUrl, systemOwner.Tenancy); return(RedirectToAction(sent ? "ForgotEmailSendConfirmation" : "ForgotPassword")); } } catch (Exception ex) { TempData.Add("EmailAddressError", "The email was not sent, please contact the system administrator."); var message = ExceptionHandler.Manage(ex, this, Layer.UILogic) ? ex.Message : "An unexpected error has ocurred."; ModelState.AddModelError("ContactEmail", message); return(View("ForgotPassword")); } TempData.Remove("EmailAddressError"); TempData.Add("EmailAddressError", "The email address does not exist!."); ModelState.AddModelError("ContactEmail", "The email address does not exist!"); return(View("ForgotPassword")); } TempData.Remove("EmailAddressError"); TempData.Add("EmailAddressError", "Please the email address is required."); ModelState.AddModelError("ContactEmail", "Please the email address is required"); return(View("ForgotPassword")); }
public Invitation CreateInvitationEntityFromModel(OwnerInvitationModel model, DateTime expirationTime, ApplicationUser creatorPrincipal) { var email = model.SentTo; var userInvited = userBusinessLogic.GetByEmail(email); if (userInvited == null) { userInvited = new Lok.Unik.ModelCommon.Client.User { AppUser = new ApplicationUser { Tenancy = model.Tenancy, ContactEmail = model.SentTo, Status = UserStatus.Invited, DateCreated = DateTime.UtcNow, PrincipalId = string.Format("formsauthentication/{0}", Guid.NewGuid()) } }; userBusinessLogic.CreateNewUser(userInvited, creatorPrincipal); } var list = ContextRegistry.ContextsOf("Principal"); var principalId = list.Single().LocalPath.TrimStart('/'); var invitation = this.ModelToEntity(model); invitation.AcceptingUser = userInvited.AppUser; if (invitation.AuthorizationCode != null) { invitation.AuthorizationCode.ExpirationTime = expirationTime; } invitation.InvitingUserId = principalId; return(invitation); }