public IActionResult AddRolesToUser(string id, IFormCollection form) { #if RELEASE var user = _userService.GetUserBySystemName(User.Identity.Name); if (!_permissionService.Authorize(StandardPermissionProvider.ManageUsers, user)) { return(AccessDeniedView()); } #endif //if (string.IsNullOrEmpty(id) || roleIds == null) // return RedirectToAction("Index"); //var user = _userService.GetUserById(id); //_userService.AddRoleToUser(id, roleIds); var userRoles = _userService.GetAllUserRoles(true); var user = _userService.GetUserById(id); var formKey = "allow_" + id;// ur.Id; var userRolesSystemNamesToRestrict = !StringValues.IsNullOrEmpty(form[formKey]) ? form[formKey].ToString()?.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList() : new List <string>(); foreach (var ur in userRoles) { var allow = userRolesSystemNamesToRestrict.Contains(ur.SystemName); //проверить, есть ли данная роль у пользователя в данный момент if (allow == _userService.GetUserRoles(user).Select(s => s.SystemName).Contains(ur.SystemName)) { continue; } if (allow) { _userService.AddUserRoleMapping(new UserUserRoleMapping { UserId = id, UserRoleId = ur.Id }); } else { _userService.RemoveUserRoleMapping(user, ur); } //_permissionService.UpdatePermissionRecord(ur); _userService.UpdateUserRole(ur); } return(RedirectToAction("Index")); }