public async Task <IActionResult> EditRolesToUser(string id) { var roles = await _roleManager.Roles.ToListAsync(); var user = await _userManager.FindByIdAsync(id); List <IdentityRole> inRoles = new List <IdentityRole>(); foreach (var role in roles) { if (await _userManager.IsInRoleAsync(user, role.Name)) { inRoles.Add(role); } } foreach (var item in inRoles) { roles.Remove(item); } var editUserRoleDto = new EditUserRoleDto() { Id = user.Id, UserName = user.UserName, NotInRoles = roles, InRoles = inRoles }; return(View(editUserRoleDto)); }
public async Task <IActionResult> EditUserRole([FromBody] EditUserRoleDto userRole) { if (userRole?.Email == null || userRole.Role == null) { return(BadRequest()); } var user = await _unitOfWork.Users.FindUserByEmailId(userRole.Email); if (user == null) { return(BadRequest()); } var result = await _unitOfWork.Users.EditUserRole(user, userRole.Role); if (!result) { BadRequest(); } await _unitOfWork.CompleteAsync(); return(Ok(result)); }
public async Task <IActionResult> RemoveRoleToUser(string ids) { string[] idstrs = ids.Split(','); var user = await _userManager.FindByIdAsync(idstrs[0]); var role = await _roleManager.FindByIdAsync(idstrs[1]); await _userManager.RemoveFromRoleAsync(user, role.Name); var roles = await _roleManager.Roles.ToListAsync(); List <IdentityRole> inRoles = new List <IdentityRole>(); foreach (var item in roles) { if (await _userManager.IsInRoleAsync(user, item.Name)) { inRoles.Add(item); } } foreach (var item in inRoles) { roles.Remove(item); } var editUserRoleDto = new EditUserRoleDto() { Id = user.Id, UserName = user.UserName, NotInRoles = roles, InRoles = inRoles }; return(RedirectToAction("EditRolesToUser", editUserRoleDto)); }