public async Task <IActionResult> SetRoles(SetRolesViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = await _userManager.FindByIdAsync(model.UserID); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } var oldRoles = await _userManager.GetRolesAsync(user); foreach (var oldRole in oldRoles) { await _userManager.RemoveFromRoleAsync(user, oldRole); } await _userManager.AddToRoleAsync(user, model.Role); StatusMessage = "User's Role has been changed."; return(RedirectToAction(nameof(SetRoles))); }
public async Task <IActionResult> SetRoles() { List <SelectListItem> UList = new List <SelectListItem>(); List <SelectListItem> RList = new List <SelectListItem>(); var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } var UserList = _context.Users.ToList(); foreach (var UserItem in UserList) { var NewItem = new SelectListItem(); NewItem.Value = UserItem.Id; NewItem.Text = UserItem.UserName; UList.Add(NewItem); } var RolesList = _context.Roles.ToList(); foreach (var RoleItem in RolesList) { var NewItem = new SelectListItem(); NewItem.Value = RoleItem.Name; NewItem.Text = RoleItem.Name; RList.Add(NewItem); } ViewBag.RList = RList; ViewBag.UList = UList; var model = new SetRolesViewModel { StatusMessage = StatusMessage }; return(View(model)); }