public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } var changePasswordResult = await _userManager.ChangePasswordAsync(user, Input.OldPassword, Input.NewPassword); if (!changePasswordResult.Succeeded) { foreach (var error in changePasswordResult.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(Page()); } // Retrieves the details for the member object that is signed with the GetUserId method of the Identity _userManager var members = await context.Members.FindAsync(_userManager.GetUserId(User)); // Sets the member password to the user input of the NewPassword Field members.Password = Input.NewPassword; // Calls on the Edit POST Method of the CreateMembersController and supplies it with the userId and the current member // object with the changed password var createMember = new CreateMembersController(context); await createMember.Edit(_userManager.GetUserId(User), members); await _signInManager.RefreshSignInAsync(user); _logger.LogInformation("User changed their password successfully."); StatusMessage = "Your password has been changed."; return(RedirectToPage()); }
public async Task <IActionResult> OnPostAsync() { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } RequirePassword = await _userManager.HasPasswordAsync(user); if (RequirePassword) { if (!await _userManager.CheckPasswordAsync(user, Input.Password)) { ModelState.AddModelError(string.Empty, "Password not correct."); return(Page()); } } var result = await _userManager.DeleteAsync(user); var userId = await _userManager.GetUserIdAsync(user); // Retrieves the details for the member object that is signed inwith the GetUserId method of the Identity _userManager var userIdForMembers = await _userManager.GetUserIdAsync(user); var members = await context.Members.FindAsync(userIdForMembers); var createMember = new CreateMembersController(context); await createMember.DeleteConfirmed(_userManager.GetUserId(User)); if (!result.Succeeded) { throw new InvalidOperationException($"Unexpected error occurred deleteing user with ID '{userId}'."); } await _signInManager.SignOutAsync(); _logger.LogInformation("User with ID '{UserId}' deleted themselves.", userId); return(Redirect("~/")); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { var user = new IdentityUser { UserName = Input.Username, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); await _signInManager.SignInAsync(user, isPersistent : false); // Create a new member object and sets all fields to their default null values, except for MemberId which is being given the id // of the user object in the localDB database, the Email which is being given the user input for the Email, and the Password // which is being given the user input for Password Members members = new Members(); members.MemberId = user.Id; members.DisplayName = Input.Username; members.Email = Input.Email; members.Password = Input.Password; // Create a session data object and store the User ID to be used later HttpContext.Session.SetString("userId", user.Id); // Calls upon the Create POST Method of the CreateMembersController and supplies it with the new member object var createMember = new CreateMembersController(context); await createMember.Create(members); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } var username = await _userManager.GetUserNameAsync(user); if (Input.Username != username) { var setUsernameResult = await _userManager.SetUserNameAsync(user, Input.Username); if (!setUsernameResult.Succeeded) { var userId = await _userManager.GetUserIdAsync(user); throw new InvalidOperationException($"Unexpected error occurred setting username for user with ID '{userId}'."); } } var email = await _userManager.GetEmailAsync(user); if (Input.Email != email) { var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email); if (!setEmailResult.Succeeded) { var userId = await _userManager.GetUserIdAsync(user); throw new InvalidOperationException($"Unexpected error occurred setting email for user with ID '{userId}'."); } } // Retrieves the details for the member object that is signed with the GetUserId method of the Identity _userManager var userIdForMembers = await _userManager.GetUserIdAsync(user); var members = await context.Members.FindAsync(userIdForMembers); // Sets all of the member data values with the user input for each item on the "Profile Information" page members.DisplayName = Input.Username; members.Email = Input.Email; members.FirstName = Input.FirstName; members.LastName = Input.LastName; members.Gender = Input.Gender; members.BirthDate = Input.BirthDate; members.ReceiveEmails = Input.ReceiveEmails; members.CardType = Input.CardType; members.CardNumber = Input.CardNumber; members.CardExpires = Input.CardExpires; // Calls upon the Edit POST method of the CreateMembersController and supplies it with the new data values for // the current member object var createMember = new CreateMembersController(context); await createMember.Edit(_userManager.GetUserId(User), members); await _signInManager.RefreshSignInAsync(user); StatusMessage = "Your profile has been updated"; return(RedirectToPage()); }