public async Task <IActionResult> ManageUser(AppUserCreateManageViewModel viewModel) { if (viewModel.UserName == null) { return(NotFound()); } var appUser = await _userManager.FindByNameAsync(viewModel.UserName); if (appUser == null) { return(NotFound()); } await _userManager.RemoveFromRolesAsync(appUser, AppRoles.AllRoles); if (!viewModel.SelectedRoles.IsEmptyOrNull()) { var rolesAddResult = await _userManager.AddToRolesAsync(appUser, viewModel.SelectedRoles); if (rolesAddResult.Succeeded) { return(RedirectToAction(nameof(Index))); } } return(RedirectToAction(nameof(Index))); }
// GET: Admin/Users/Create public async Task <IActionResult> Create() { var viewModel = new AppUserCreateManageViewModel { UserName = "", Password = "", Roles = await GetRolesSelectListAsync() }; return(View(viewModel)); }
public async Task <IActionResult> Create(AppUserCreateManageViewModel createViewModel) { if (!await IsUserNameValidAsync(createViewModel.UserName)) { ModelState.AddModelError("", "This username is already in use!"); } if (!await IsEmailValidAsync(createViewModel.Email)) { ModelState.AddModelError("", "This email is already in use!"); } if (ModelState.IsValid) { var user = new AppUser { UserName = createViewModel.UserName, Email = createViewModel.Email }; var userAddResult = await _userManager.CreateAsync(user, createViewModel.Password); if (userAddResult == IdentityResult.Success) { var userInUserManager = await _userManager.FindByEmailAsync(user.Email); var rolesAddResult = await _userManager.AddToRolesAsync(userInUserManager, createViewModel.SelectedRoles); if (rolesAddResult.Succeeded && userAddResult.Succeeded) { return(RedirectToAction(nameof(Index))); } } else { ModelState.AddModelError("", "User creation failed"); } } createViewModel.Roles = await GetRolesSelectListAsync(); return(View(createViewModel)); }
public async Task <IActionResult> ManageUser(string?userName) { if (userName == null) { return(NotFound()); } var appUser = await _userManager.FindByNameAsync(userName); if (appUser == null) { return(NotFound()); } var viewModel = new AppUserCreateManageViewModel { Email = appUser.Email, UserName = appUser.UserName, SelectedRoles = await _userManager.GetRolesAsync(appUser), Roles = await GetRolesSelectListAsync() }; return(View(viewModel)); }