public async Task <ActionResult> ResetEmail(ResetEmailViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = await UserManager.FindByIdAsync(model.Id); if (user == null) { return(RedirectToAction("ResetPasswordConfirmation", "Account")); } user.Email = model.Email; // var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); // var result = await UserManager.ResetPasswordAsync(user.Id, code, model.Password); var res = UserManager.Update(user); if (res.Succeeded) { if (model.Type == "admin") { return(RedirectToAction("Index", "Admin")); } if (model.Type == "user") { return(RedirectToAction("UserPage", "User")); } } // AddErrors(result); return(View()); }
public IActionResult changeemail(ResetEmailViewModel model) { ViewData["Page"] = "change-email"; if (!ModelState.IsValid) { return(View("~/Views/Home/index.cshtml", model)); } // validate id and key if (UserBLL.Validate_User_Key(_context, model.Id, model.Code)) { // update email UserBLL.Update_Field_Id(_context, model.Id, "email", model.Email); var user = SiteConfig.userManager.FindByIdAsync(model.Id).Result; if (user != null) { _emailSender.ChangeEmailResetCompletedAsync(_context, user.Email, user.UserName); } } else { throw new ApplicationException(SiteConfig.generalLocalizer["_email_reset_failed"].Value); } ViewData["Page"] = "signin"; return(RedirectToAction(nameof(HomeController.Index), "Home")); }
public async Task <IActionResult> ChangeEmail(ResetEmailViewModel viewModel) { if (!ModelState.IsValid) { return(BadRequest()); } var user = await _userManager.FindByIdAsync(viewModel.UserId); if (user == null) { return(BadRequest("Could not find User")); } var result = await _userManager.ChangeEmailAsync(user, viewModel.NewEmail, viewModel.Token); var resultUserNameChange = await _userManager.SetUserNameAsync(user, viewModel.NewEmail); if (result.Succeeded && resultUserNameChange.Succeeded) { return(Ok()); } return(BadRequest(result.Succeeded ? resultUserNameChange.Errors : result.Errors)); }
public IActionResult ResetEmail(ResetEmailViewModel r) { if (GlobalStatic.userID == null) { return(View("Index")); } List <User> Users = context.Users.ToList(); foreach (User user in Users) { if (user.UserId == GlobalStatic.userID) { // this is the right user to update context.Users.Remove(user); context.SaveChanges(); user.Email = r.Email; context.Users.Add(user); context.SaveChanges(); GlobalStatic.Email = r.Email; return(View("Profile", new ProfileViewModel { FirstName = GlobalStatic.FirstName, LastName = GlobalStatic.LastName, Role = GlobalStatic.role, Email = GlobalStatic.Email })); } } return(View("Index")); }
public IActionResult ResetEmail() { if (GlobalStatic.userID == null) { return(View("Index")); } ResetEmailViewModel revm = new ResetEmailViewModel { Email = GlobalStatic.Email }; return(View(revm)); }
public IActionResult changeemail(string code = null, string user = null) { ViewData["Page"] = "change-email"; if (code == null || user == null) { throw new ApplicationException(SiteConfig.generalLocalizer["_email_reset_code_error"].Value); } var model = new ResetEmailViewModel { Code = code, Id = user }; ViewData["Code"] = code; ViewData["Id"] = user; return(View("~/Views/Home/index.cshtml")); }
public async Task <IActionResult> ResetEmail(ResetEmailViewModel model) { if (ModelState.IsValid) { var user = await userManager.FindByIdAsync(User.Identity.GetUserId()); var CheckPassword = await signInManager.CheckPasswordSignInAsync(user, model.Password, false); if (CheckPassword.Succeeded) { user.Email = model.NewEmail; user.UserName = model.NewEmail; await userManager.UpdateAsync(user); return(RedirectToAction("MyAccount")); } } return(View(model)); }
public async Task <IActionResult> ChangeEmail(ResetEmailViewModel viewModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _userManager.FindByIdAsync(viewModel.UserId); if (user is null) { return(BadRequest("Could not find User")); } var emailChange = await _userManager.ChangeEmailAsync(user, viewModel.NewEmail, viewModel.Token); if (!emailChange.Succeeded) { _log.LogError(string.Join(", ", emailChange.Errors.Select(e => $"{e.Code}: {e.Description}"))); if (emailChange.Errors.Any(c => c.Description.Contains("DuplicateEmail"))) { return(BadRequest("Email is already bound to a user")); } return(BadRequest("Could not change email")); } var userNameChange = await _userManager.SetUserNameAsync(user, viewModel.NewEmail); if (!userNameChange.Succeeded) { _log.LogCritical("Changed email, but not username"); return(BadRequest("Could not change userName to new email")); } return(RedirectToAction("ChangeEmailSuccess", new ChangeEmailSuccessViewModel { NewEmail = viewModel.NewEmail })); }
public async Task <IActionResult> ResetEmail(ResetEmailViewModel model) { try { if (ModelState.IsValid) { //get userid from access token string userId = User.Claims.First(c => c.Type == "UserID").Value; var user = await _userManager.FindByIdAsync(userId); var userstatus = user.UserStatus; if (user != null && userstatus) { // If user has to activate his email to confirm his account, the use code listing below if (!_userManager.IsEmailConfirmedAsync(user).Result) { return(Ok(new { status = StatusCodes.Status200OK, success = false, message = ResponseMessages.msgEmailNotConfirmed, userstatus })); } if (user.Otp == Convert.ToInt32(model.OldEmailOTP) && user.EmailOtp == Convert.ToInt32(model.NewEmailOTP)) { user.UserName = user.Newemail; user.NormalizedUserName = user.Newemail; user.Email = user.Newemail; user.NormalizedEmail = user.Newemail; user.Otp = null; user.EmailOtp = null; user.EmailchangeConfirmed = true; user.EmailchangeCounter = (user.EmailchangeCounter == null || user.EmailchangeCounter == 0) ? 1 : user.EmailchangeCounter + 1; user.UpdatedBy = userId; user.UpdatedDate = DateTime.Now; IdentityResult res = await _userManager.UpdateAsync(user); if (res.Succeeded) { return(Ok(new { status = StatusCodes.Status200OK, success = true, message = ResponseMessages.msgEmailResetSuccess, userstatus })); } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = res.Errors.First().Code, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgNewOldOtpInvalid, userstatus = false }));; } } else { return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus })); } } else { return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false })); } } catch (Exception ex) { return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = "something went wrong." + ex.Message, userstatus = false })); } }