public async Task <IActionResult> ChangeUserRoles(string email) { var user = await _userManager.FindByEmailAsync(email); if (user == null) { return(NotFound()); } List <SelectListItem> userRoles = new List <SelectListItem>(); foreach (var role in await _roleManager.Roles.ToListAsync()) { userRoles.Add(new SelectListItem() { Text = role.Name, Value = role.Name, Selected = await _userManager.IsInRoleAsync(user, role.Name) }); } var model = new ChangeUserRolesViewModel() { Email = email, Roles = userRoles }; return(View(model)); }
public async Task <IActionResult> ChangeUserRoles(ChangeUserRolesViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = await _userManager.FindByEmailAsync(model.Email); if (user != null && model.UserRoles != null) { IdentityResult resultAddToRole = new IdentityResult(); IdentityResult resultRemoveFromRoles = await _userManager.RemoveFromRolesAsync(user, await _userManager.GetRolesAsync(user)); foreach (var role in model.UserRoles) { if (await _roleManager.RoleExistsAsync(role)) { resultAddToRole = await _userManager.AddToRoleAsync(user, role); } } if (resultRemoveFromRoles.Succeeded && resultAddToRole.Succeeded) { _logger.LogInformation(3, "Uprawnienia użytkownika zostały zmienione."); return(RedirectToAction(nameof(Index), new { Message = ManageMessageId.ChangeUserRolesSuccess })); } AddErrors(resultRemoveFromRoles); AddErrors(resultAddToRole); return(View(model)); } return(RedirectToAction(nameof(Index), new { Message = ManageMessageId.Error })); }
public async Task <IActionResult> EditRoles(string userId) { // получаем пользователя User user = await _userManager.FindByIdAsync(userId); if (user != null) { // получем список ролей пользователя var userRoles = await _userManager.GetRolesAsync(user); var allRoles = _roleManager.Roles.ToList(); ChangeUserRolesViewModel model = new ChangeUserRolesViewModel { UserId = user.Id, UserEmail = user.Email, UserRoles = userRoles, AllRoles = allRoles }; return(View(model)); } return(NotFound()); }