public async Task <IActionResult> UpdateUserRoles([FromBody] UpdateUserRolesViewModel request) { var success = true; var message = ""; if (!User.IsOwner()) { request.NewOwners = new List <int>(); message = "Admins cannot create Owners!"; } var allRoles = new List <string>() { "Owner", "Admin", "User" }; try { var tasks = new List <Task>(); tasks.AddRange(request.NewOwners.Select(o => ProcessRoleChange(o, "Owner", allRoles))); tasks.AddRange(request.NewAdmins.Select(a => ProcessRoleChange(a, "Admin", allRoles))); tasks.AddRange(request.NewUsers.Select(u => ProcessRoleChange(u, "User", allRoles))); await Task.WhenAll(tasks); } catch (Exception ex) { success = false; message = ex.Message; } return(Json(new { Success = success, Message = message })); }
public async Task <IActionResult> UpdateUserRole(UpdateUserRolesViewModel userVM) { if (ModelState.IsValid) { await userRolesService.UpdateUserRoles(userVM); return(NoContent()); } else { return(StatusCode(StatusCodes.Status500InternalServerError, new { internalMessage = "Modelstate is invalid!" })); } }
public async Task UpdateUserRoles(UpdateUserRolesViewModel userVM) { var appUser = await userManager.FindByIdAsync(userVM.UserId); var roles = await userManager.GetRolesAsync(appUser); if (roles != null && roles.Count > 0) { await userManager.RemoveFromRolesAsync(appUser, roles); } foreach (var roleId in userVM.SelectedRoleIds) { var roleName = (await roleManager.FindByIdAsync(roleId)).Name; await userManager.AddToRoleAsync(appUser, roleName); } }
public async Task <ICollection <UpdateUserRolesViewModel> > GetUsers() { var roles = roleManager.Roles.ToList(); List <UpdateUserRolesViewModel> usersVM = new List <UpdateUserRolesViewModel>(); foreach (var user in userManager.Users) { UpdateUserRolesViewModel userVM = new UpdateUserRolesViewModel { UserId = user.Id, FirstName = user.FirstName, LastName = user.LastName, UserName = user.UserName, Roles = new List <SelectListItem>() }; foreach (var role in roles) { if (await userManager.IsInRoleAsync(user, role.Name)) { userVM.Roles.Add(new SelectListItem { Value = role.Id, Text = role.Name, Selected = true }); } else { userVM.Roles.Add(new SelectListItem { Value = role.Id, Text = role.Name, }); } } usersVM.Add(userVM); } return(usersVM); }