public async Task <ActionResult <UserCredentialsUpdateApiModel> > EditRoles( [FromBody] UserRolesBindingModel binding, [FromRoute] string userName) { await _userService.UpdateUserRolesAsync(userName, binding.Roles); return(Ok(await GetAdminUserResultAsync(userName))); }
public async Task <IHttpActionResult> RemoveRolesFromUser(string id, [FromBody] UserRolesBindingModel model) { if (model == null) { return(BadRequest("Payload is empty!")); } var user = await UserManager.FindByIdAsync(id); if (user == null) { return(NotFound()); } var rolesNotExists = model.Roles.Except(RoleManager.Roles.Select(x => x.Name)).ToArray(); if (rolesNotExists.Any()) { ModelState.AddModelError("", $"Roles '{string.Join(",", rolesNotExists)}' does not exixts."); return(BadRequest(ModelState)); } var currentUserRoles = await UserManager.GetRolesAsync(user.Id); var rolesToRemove = currentUserRoles.Intersect(model.Roles).ToArray(); await UserManager.RemoveFromRolesAsync(user.Id, rolesToRemove); var userRoles = user.Roles; var userRolesList = new List <Role>(); foreach (var userRole in userRoles) { var role = await RoleManager.FindByIdAsync(userRole.RoleId); userRolesList.Add(role); } var userRolesDto = userRolesList.Select(RoleFactory.GetModel <RoleForAdminDto>); return(Ok(userRolesDto)); }
public async Task <IHttpActionResult> RemoveRolesFromUser(string id, UserRolesBindingModel model) => Ok(await _userService.RemoveRolesFromUser(id, model.Roles));
public async Task <IHttpActionResult> AddRolesToUser(string id, UserRolesBindingModel model) => Ok(await _userService.AddRolesToUser(id, model.Roles));