public async Task <IActionResult> ChangePassword(string id) { bool userExists = await this.usersService.CheckIfUserExistsAsync(id); if (!userExists) { return(this.ProcessNullEntity(nameof(Blog.Models.User))); } var currentUserId = await this.userProfileService.GetUserIdAsync(this.User.Identity.Name); if (id == currentUserId) { var messageModel = new MessageModel() { Type = MessageType.Warning, Message = Messages.NotAllowedMsg }; TempDataExtensions.Put(this.TempData, Constants.TempDataKey, messageModel); return(this.RedirectToAction("Index", "Users", new { Area = "Admin" })); } var username = await this.usersService.GetUsernameByUserIdAsync(id); var model = new UserChangePasswordBindingModel() { Id = id, Username = username }; return(this.View(model)); }
public async Task <bool> ChangePasswordAsync(UserChangePasswordBindingModel model) { Validator.ThrowIfNull(model); var user = await this.DbContext.Users.FindAsync(model.Id); var changePasswordResult = await this.userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); return(changePasswordResult.Succeeded); }
public async Task <IActionResult> ChangePassword(UserChangePasswordBindingModel model) { bool userExists = await this.usersService.CheckIfUserExistsAsync(model.Id); if (!userExists) { return(this.ProcessNullEntity(nameof(Blog.Models.User))); } var currentUserId = await this.userProfileService.GetUserIdAsync(this.User.Identity.Name); if (model.Id == currentUserId) { var messageModel = new MessageModel() { Type = MessageType.Warning, Message = Messages.NotAllowedMsg }; TempDataExtensions.Put(this.TempData, Constants.TempDataKey, messageModel); return(this.RedirectToAction("Index", "Users", new { Area = "Admin" })); } if (!this.ModelState.IsValid) { var viewModel = new UserChangePasswordBindingModel() { Id = model.Id, Username = model.Username }; return(this.View(viewModel)); } model = TSelfExtensions.TrimStringProperties(model); bool succeeded = await this.usersService.ChangePasswordAsync(model); if (succeeded) { var message = new MessageModel() { Type = MessageType.Success, Message = $"The password of user with Username: {model.Username} has been changed successfully." }; TempDataExtensions.Put(this.TempData, Constants.TempDataKey, message); } else { var message = new MessageModel() { Type = MessageType.Warning, Message = $"Unexpected error occurred changing password of User with Username: {model.Username}." }; TempDataExtensions.Put(this.TempData, Constants.TempDataKey, message); } return(this.RedirectToAction("Details", "Users", new { id = model.Id, Area = "Admin" })); }
public async Task <IActionResult> ChangePassword() { var user = await this.userManager.GetUserAsync(this.User); if (user == null) { return(this.NotFound()); } if (!await this.userManager.HasPasswordAsync(user)) { return(this.RedirectToAction("SetPassword")); } var model = new UserChangePasswordBindingModel { Email = user.Email }; return(this.View(model)); }
public async Task <IActionResult> ChangePassword(UserChangePasswordBindingModel model) { if (!this.ModelState.IsValid) { return(this.RedirectToAction("ChangePassword")); } var user = await this.userManager.GetUserAsync(this.User); if (user == null) { return(this.NotFound()); } if (!await this.userManager.HasPasswordAsync(user)) { return(this.RedirectToAction("SetPassword")); } var changePasswordResult = await this.userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); if (!changePasswordResult.Succeeded) { foreach (var error in changePasswordResult.Errors) { this.ModelState.AddModelError(string.Empty, error.Description); } model.Email = user.Email; return(this.View(model)); } this.Success(NotificationMessages.PasswordChanged); return(this.LocalRedirect("/")); }