Ejemplo n.º 1
0
        public async Task <IActionResult> RemoveFromRole(EditUsersRoleViewModel model)
        {
            if (ModelState.IsValid && model.Ids != null)
            {
                foreach (string id in model.Ids)
                {
                    AppUser user = await userManager.FindByIdAsync(id);

                    if (user != null)
                    {
                        IdentityResult result = await userManager.RemoveFromRoleAsync(user, model.Name);

                        if (!result.Succeeded)
                        {
                            foreach (IdentityError err in result.Errors)
                            {
                                ModelState.AddModelError("", err.Description);
                            }
                        }
                    }
                }
            }
            if (ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Index)));
            }
            return(await RemoveFromRole(model.RoleId));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> EditUsersRole(string idRole)
        {
            if (string.IsNullOrEmpty(idRole))
            {
                ViewBag.ErrorMessage = $"The role must exist and not empty in the URL !";
                return(View("NotFound"));
            }

            IdentityRole role = await this.roleManager.FindByIdAsync(idRole);

            if (role is null)
            {
                ViewBag.ErrorMessage = $"The role ID {idRole} cannot be found !";
                return(View("NotFound"));
            }

            List <EditUsersRoleViewModel> Models = new List <EditUsersRoleViewModel>();

            foreach (AppUser user in userManager.Users)
            {
                EditUsersRoleViewModel model = new EditUsersRoleViewModel()
                {
                    UserId     = user.Id,
                    UserName   = user.UserName,
                    IsSelected = false
                };

                if (await userManager.IsInRoleAsync(user, role.Name))
                {
                    model.IsSelected = true;
                }

                Models.Add(model);
            }

            ViewBag.RoleId = idRole;
            return(View(Models));
        }