public async Task <IActionResult> Edit(ModifyUserRoles model) { if (ModelState.IsValid) { IdentityResult result; foreach (var id in model.IdsToAdd) { var user = await _userManager.FindByIdAsync(id); if (user == null) { break; } if (await _userManager.IsInRoleAsync(user, model.RoleName)) { break; } result = await _userManager.AddToRoleAsync(user, model.RoleName); if (!result.Succeeded) { AddErrorsFromResult(result); } } foreach (var id in model.IdsToRemove) { var user = await _userManager.FindByIdAsync(id); if (user == null) { break; } if (!await _userManager.IsInRoleAsync(user, model.RoleName)) { break; } result = await _userManager.RemoveFromRoleAsync(user, model.RoleName); if (!result.Succeeded) { AddErrorsFromResult(result); } } } if (ModelState.IsValid) { return(RedirectToAction("Index")); } return(await Edit(model.RoleId)); }
public async Task <IActionResult> GetAllRoles(string userId) { var user = _repo.User.FindByCondition(u => u.Id == userId).SingleOrDefault(); var userRoles = await _userManager.GetRolesAsync(_mapper.Map <User>(user)); var model = new ModifyUserRoles() { UserId = userId, Roles = (userRoles.Count() > 0) ? userRoles.ToArray() : new string[0], AvailableRoles = _userManager.GetRoles().ToList() }; return(PartialView("_AvailableRoles", model)); }
public async Task <IActionResult> DeleteRole([FromBody] ModifyUserRoles deleteRole) { var newRoles = await _userManager.RemoveFromRolesAsync(deleteRole.UserId, deleteRole.Roles); return(Ok(newRoles)); }
public async Task <IActionResult> AddRole([FromBody] ModifyUserRoles addRole) { var newRoles = await _userManager.AddToRolesAsync(addRole.UserId, addRole.Roles); return(Ok(newRoles)); }