public async Task<ActionResult> ChangeDetailsPartial(UserViewModel userModel) { var user = await userManager.FindByIdAsync(userModel.UserId); if (user == null) { AuthenticationManager.Logout(HttpContext); return RedirectToAction("Index", "Login"); } var nameChanged = user.UserName != userModel.Name; if (nameChanged && await userManager.FindByNameAsync(userModel.Name) != null) return RedirectToAction("Manage", new { Message = ManageMessageId.Error }); user.UserName = userModel.Name; user.GroupName = userModel.GroupName; user.FirstName = userModel.FirstName; user.LastName = userModel.LastName; user.Email = userModel.Email; user.LastEdit = DateTime.Now; if (!string.IsNullOrEmpty(userModel.Password)) { await userManager.RemovePasswordAsync(user.Id); await userManager.AddPasswordAsync(user.Id, userModel.Password); } await userManager.UpdateAsync(user); if (nameChanged) { AuthenticationManager.Logout(HttpContext); return RedirectToAction("Index", "Login"); } return RedirectToAction("Manage"); }
public async Task<ActionResult> ChangeDetailsPartial(UserViewModel userModel) { var user = await UserManager.FindByIdAsync(userModel.UserId); if (user == null) { AuthenticationManager.SignOut(); return RedirectToAction("Login"); } var nameChanged = user.UserName != userModel.Name; if (nameChanged && await UserManager.FindByNameAsync(userModel.Name) != null) return RedirectToAction("Manage", new { Message = ManageMessageId.Error }); user.UserName = userModel.Name; user.GroupName = userModel.GroupName; await UserManager.RemovePasswordAsync(user.Id); await UserManager.AddPasswordAsync(user.Id, userModel.Password); await UserManager.UpdateAsync(user); if (nameChanged) { AuthenticationManager.SignOut(); return RedirectToAction("Login"); } return RedirectToAction("Manage"); }