public async Task <IActionResult> Edit(string id) { if (User.IsInRole("admin")) { var user = await userService.GetUserInfoAsync(id); var allRoles = await this.userService.GetAllRoles(); var viewModel = new UpdateUserViewMode() { Role = allRoles.Select(r => new SelectListItem(r.RoleName, r.Id.ToString())).ToList() }; if (user.RoleName == "admin") { viewModel.Role.Reverse(); } if (viewModel == null) { return(NotFound()); } return(View(viewModel)); } else { if (id != null) { return(NotFound()); } var currentMember = User.Identity.Name; var user = await userService.FindUserDTOAsync(currentMember); id = user.Id; var viewModel = new UpdateUserViewMode() { Id = id }; if (viewModel == null) { return(NotFound()); } return(View(viewModel)); } }
public async Task <IActionResult> Edit(UpdateUserViewMode vm) { if (!this.ModelState.IsValid) { throw new Exception(); } if (User.IsInRole("user")) { await this.userService.UpdateUserAsync(vm.Id, vm.Password, vm.NewPassword, vm.RoleId); return(RedirectToAction("Index", "Home")); } await this.userService.UpdateUserAsync(vm.Id, vm.Password, vm.NewPassword, vm.RoleId); return(RedirectToAction("Index", "User", "Users")); }