public async Task<ActionResult> Edit(string nickname, EditViewModel model) { if (ModelState.IsValid) { // update entity in db. var oldUser = UserManager.FindByName(nickname); String email = oldUser.Email; var result = await UserManager.SetEmailAsync(oldUser.Id, model.Email); if (result.Succeeded) { if (!String.IsNullOrEmpty(model.NewPassword)) result = await UserManager.ChangePasswordAsync(oldUser.Id, model.Password, model.NewPassword); if (result.Succeeded) { Engine.BusinessManagement.User.UpdateUser(new Engine.Dbo.User() { Id = oldUser.T_UserId, AspNetUsersId = oldUser.Id, Description = model.Description, Mail = model.Email, Nickname = model.Nickname, Password = model.Password, }); return RedirectToAction("Display", "Account", new RouteValueDictionary() { { "nickname", nickname }, { "updated", true } }); } else result = await UserManager.SetEmailAsync(oldUser.Id, email); } AddErrors(result); } return View(model); }
public ActionResult Edit(string nickname) { // Check if edit is available to current user. var actualUser = UserManager.FindById(User.Identity.GetUserId()); if (!User.IsInRole("Admin") && !User.IsInRole("Moderator") && actualUser.UserName != nickname) return RedirectToAction("Index", "Home"); var user = Engine.BusinessManagement.User.FindUserByNickname(nickname); EditViewModel userModel = new EditViewModel() { Nickname = user.Nickname, Email = user.Mail, Description = user.Description, }; ViewBag.UserId = user.Id; return View("Edit", userModel); }