public async Task <IActionResult> EditUserInRole(string roleId) { var role = await _roleManager.FindByIdAsync(roleId); if (role == null) { ViewBag.ErrorMessage = $"User with id={roleId} not found"; return(View("NotFound")); } List <UserInRoleModel> models = new List <UserInRoleModel> (); foreach (var user in _userManager.Users.ToList()) { UserInRoleModel model = new UserInRoleModel(); model.UserId = user.Id; model.Username = user.UserName; if (await _userManager.IsInRoleAsync(user, role.Name)) { model.IsSelected = true; } else { model.IsSelected = false; } models.Add(model); } return(View(models)); }
public async Task <IHttpActionResult> ManageUserInRole(UserInRoleModel model) { var role = await this.AppRoleManager.FindByIdAsync(model.Id); if (role == null) { ModelState.AddModelError("", "Role does not exist"); return(BadRequest(ModelState)); } var user = model.EnrolledUser; if (user != null) { var appUser = await this.AppUserManager.FindByIdAsync(user); if (appUser == null) { ModelState.AddModelError("", String.Format("User: {0} does not exists", user)); } if (!this.AppUserManager.IsInRole(user, role.Name)) { IdentityResult result = await this.AppUserManager.AddToRoleAsync(user, role.Name); if (!result.Succeeded) { ModelState.AddModelError("", String.Format("User: {0} could not be added to role", user)); } } } user = model.RemovedUser; if (user != null) { var appUser = await this.AppUserManager.FindByIdAsync(user); if (appUser == null) { ModelState.AddModelError("", String.Format("User: {0} does not exists", user)); } IdentityResult resultRemove = await this.AppUserManager.RemoveFromRoleAsync(user, role.Name); if (!resultRemove.Succeeded) { ModelState.AddModelError("", String.Format("User: {0} could not be removed from role", user)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } } return(Ok()); }
public async Task <IHttpActionResult> ManageUsersInRole(UserInRoleModel userInRoleModel) { IdentityRole identityRole = await ApplicationRoleManager.FindByIdAsync(userInRoleModel.Id); if (identityRole == null) { ModelState.AddModelError("", "Role does not exist"); return(BadRequest(ModelState)); } foreach (string userId in userInRoleModel.EnrolledUsers) { ApplicationUser applicationUser = await ApplicationUserManager.FindByIdAsync(userId); if (applicationUser == null) { ModelState.AddModelError("", $"User by Id: {userId} dous not exist"); continue; } if (!ApplicationUserManager.IsInRole(userId, identityRole.Name)) { IdentityResult identityResult = await ApplicationUserManager.AddToRoleAsync(userId, identityRole.Name); if (!identityResult.Succeeded) { ModelState.AddModelError("", $"User by Id: {userId} could not be added to role"); } } } foreach (string userId in userInRoleModel.RemovedUsers) { ApplicationUser applicationUser = await ApplicationUserManager.FindByIdAsync(userId); if (applicationUser == null) { ModelState.AddModelError("", $"User by Id: {userId} does not exist"); continue; } IdentityResult identityResult = await ApplicationUserManager.RemoveFromRoleAsync(userId, identityRole.Name); if (!identityResult.Succeeded) { ModelState.AddModelError("", $"User by Id: {userId} could not be removed from role"); } } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok()); }
// GET: Admin/Users public async Task <ActionResult> Index(int?page, string search) { var rolesAssigneed = canLoggedInUserView(); string roleCanView = "Admin"; if (rolesAssigneed != null) { var element = rolesAssigneed.Where(x => x.StartsWith(roleCanView)).FirstOrDefault(); if (element != roleCanView) { return(RedirectToAction("Unauthorized", "Access")); } else { ViewBag.CurrentSearch = search; var listUserRoles = new List <UserandRolesViewModel>(); var listUsersInRoleOnly = new List <UserInRoleModel>(); UserandRolesViewModel mainModel = new UserandRolesViewModel(); var Users = UserManager.Users; foreach (var user in Users) { var r = new UserandRolesViewModel { FullName = user.FullName, UserName = user.UserName, Email = user.Email, UserId = user.Id }; listUserRoles.Add(r); } foreach (var user in listUserRoles) { if (!String.IsNullOrEmpty(search)) { user.RoleNames = await UserManager.GetRolesAsync(Users.First(i => i.UserName == search).Id); foreach (var role in user.RoleNames) { if (user.Email.Equals(search)) { UserInRoleModel model = new UserInRoleModel(); model.Email = user.Email; model.FullName = user.FullName; model.RoleName = role; model.UserId = user.UserId; listUsersInRoleOnly.Add(model); } else { } } } else { user.RoleNames = await UserManager.GetRolesAsync(Users.First(i => i.UserName == user.UserName).Id); foreach (var role in user.RoleNames) { if (role != null) { UserInRoleModel model = new UserInRoleModel(); model.Email = user.Email; model.FullName = user.FullName; model.RoleName = role; model.UserId = user.UserId; listUsersInRoleOnly.Add(model); } } } } int pageSize = 50; int pageNumber = page ?? 1; mainModel.UserInRoleModels = listUsersInRoleOnly.ToPagedList <UserInRoleModel>(pageNumber, pageSize); return(View(mainModel)); } } else { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie); } return(RedirectToAction("Login", "Access")); }