Esempio n. 1
0
        public async Task <IdentityResult> Put([FromBody] RoleModificationViewModel model)
        {
            var result = IdentityResult.Success;

            foreach (var userId in model.IdsToAdd ?? new string[] { })
            {
                var user = await _userManager.FindByIdAsync(userId);

                result = await _userManager.AddToRoleAsync(user, model.RoleName);

                if (!result.Succeeded)
                {
                    return(result);
                }
            }

            foreach (var userId in model.IdsToDelete ?? new string[] { })
            {
                var user = await _userManager.FindByIdAsync(userId);

                result = await _userManager.RemoveFromRoleAsync(user, model.RoleName);

                if (!result.Succeeded)
                {
                    return(result);
                }
            }

            return(result);
        }
        public async Task <ActionResult> Edit(RoleModificationViewModel model)
        {
            IdentityResult result;

            if (ModelState.IsValid)
            {
                foreach (string userId in model.IdsToAdd ?? new string[] { })
                {
                    result = await _userManager.AddToRoleAsync(userId, model.RoleName);

                    if (!result.Succeeded)
                    {
                        return(View("_Error", result.Errors));
                    }
                }
                foreach (string userId in model.IdsToDelete ?? new string[] { })
                {
                    result = await _userManager.RemoveFromRoleAsync(userId, model.RoleName);

                    if (!result.Succeeded)
                    {
                        return(View("_Error", result.Errors));
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View("_Error", new string[] { "Role Not Found" }));
        }
        } // end public async Task<IActionResult> OnGetAsync(string id)
        public async Task<IActionResult> OnPostAsync([FromForm]RoleModificationViewModel model)
        {
            IdentityResult result;

            if (ModelState.IsValid)
            {
                if (model.IdsToAdd != null)  // Avoid null exception
                {
                    foreach (string addId in model.IdsToAdd)
                    {
                        Core3IDUser user = await userManager.FindByIdAsync(addId);
                        if (user == null)
                        {
                            return BadRequest(String.Format("User with Id, {0}, was not found and cannot be added to role, {1}.", addId, model.RoleName));
                        }
                        else
                        {
                            result = await userManager.AddToRoleAsync(user, model.RoleName);
                            if (!result.Succeeded)
                            {
                                AddErrorsFromResult(result);
                            } // endif (!result.Succeeded)
                        } // endif (user == null)
                    } // end foreach (string addId in model.IdsToAdd)
                } // endif (model.IdsToAdd != null)

                if (model.IdsToDelete != null)  // Avoid null exception
                {
                    foreach (string deleteId in model.IdsToDelete)
                    {
                        Core3IDUser user = await userManager.FindByIdAsync(deleteId);
                        if (user == null)
                        {
                            return BadRequest(String.Format("User with Id, {0}, was not found and cannot be deleted from role, {1}.", deleteId, model.RoleName));
                        }
                        else
                        {
                            result = await userManager.RemoveFromRoleAsync(user, model.RoleName);
                            if (!result.Succeeded)
                            {
                                AddErrorsFromResult(result);
                            } // endif (!result.Succeeded)
                        } // endif (user == null)
                    } // end foreach (string deleteId in model.IdsToDelete)
                } // endif (model.IdsToDelete != null)
            } // endif (ModelState.IsValid)

            return RedirectToPage("/RoleAdmin/ManageUsers", new { id = model.RoleId });
        } // end public async Task<IActionResult> Edit(RoleModificationViewModel model)
        public async Task <IActionResult> RoleUsersMembership(string roleId)
        {
            var role = await roleManager.FindByIdAsync(roleId);

            if (role == null)
            {
                ViewBag.ErrorMessage($"Sorry, the role with Id = {roleId} could not be found");
                return(RedirectToAction("NotFound"));
            }
            var model = new RoleModificationViewModel()
            {
                RoleId   = role.Id,
                RoleName = role.Name
            };

            model.Users = new List <string>();
            model.Obj   = new List <UserRoleViewModel>();

            foreach (var user in userManager.Users.ToList())
            {
                if (await userManager.IsInRoleAsync(user, role.Name))
                {
                    model.Users.Add(user.UserName);
                }
            }

            foreach (var user in userManager.Users.ToList())
            {
                var userRole = new UserRoleViewModel()
                {
                    UserId   = user.Id,
                    UserName = user.UserName
                };

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

                model.Obj.Add(userRole);
            }

            return(View(model));
        }
        public async Task <IActionResult> Edit(RoleModificationViewModel model)
        {
            IdentityResult result;

            if (ModelState.IsValid)
            {
                foreach (string userId in model.IdsToAdd ?? new string[] { })
                {
                    ApplicationUser user = await userManager.FindByIdAsync(userId);

                    if (user != null)
                    {
                        // below line code used in AccountController to add all
                        // new users to the "Users" role as soon as they Register.
                        result = await userManager.AddToRoleAsync(user, model.RoleName);

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
                foreach (string userId in model.IdsToDelete ?? new string[] { })
                {
                    ApplicationUser user = await userManager.FindByIdAsync(userId);

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

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
            }
            if (ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(await Edit(model.RoleId));
            }
        }
Esempio n. 6
0
        public async Task <IActionResult> Edit(RoleModificationViewModel model)
        {
            IdentityResult result;

            if (ModelState.IsValid)
            {
                foreach (string userId in model.IdsToAdd ?? new string[] { })
                {
                    AppUser user = await userManager.FindByIdAsync(userId);

                    if (user != null)
                    {
                        result = await userManager.AddToRoleAsync(user,
                                                                  model.RoleName);

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
                foreach (string userId in model.IdsToDelete ?? new string[] { })
                {
                    AppUser user = await userManager.FindByIdAsync(userId);

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

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
            }

            if (ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(await Edit(model.RoleId));
            }
        }
Esempio n. 7
0
        public async Task <ActionResult> Edit(RoleModificationViewModel model)
        {
            IdentityResult result;

            if (ModelState.IsValid)
            {
                var role = await RoleManager.FindByNameAsync(model.RoleName);

                if (role != null)
                {
                    role.IsAvailableForAdministrators = model.IsAvailableForAdministrators;
                    result = await RoleManager.UpdateAsync(role);

                    if (!result.Succeeded)
                    {
                        return(View("Error", result.Errors));
                    }
                }
                else
                {
                    return(View("Error", new string[] { "Ролята не е намерена!" }));
                }

                foreach (string userId in model.IdsToAdd ?? new string[] { })
                {
                    result = await UserManager.AddToRoleAsync(userId, model.RoleName);

                    if (!result.Succeeded)
                    {
                        return(View("Error", result.Errors));
                    }
                }

                foreach (string userId in model.IdsToDelete ?? new string[] { })
                {
                    result = await UserManager.RemoveFromRoleAsync(userId, model.RoleName);

                    if (!result.Succeeded)
                    {
                        return(View("Error", result.Errors));
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View("Error", new string[] { "Ролята не е намерена!" }));
        }
        public async Task <ActionResult> Edit(RoleModificationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(HttpNotFound("Role Not Found"));
            }

            var result = await _authorizationServerManager.UpdateRoleAsync(model);

            if (!result.Succeeded)
            {
                AddErrorsFromResult(result);
                RedirectToAction("Edit", "RoleAdmin", model.Id);
            }

            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> EditRole(RoleModificationViewModel model)
        {
            IdentityResult result;

            if (ModelState.IsValid)
            {
                foreach (string userId in model.IdsToAdd ?? new string[] { })
                {
                    AppUser user = await userManager.FindByIdAsync(userId);

                    if (user != null)
                    {
                        result = await userManager.AddToRoleAsync(user, model.RoleName);

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
                foreach (string userId in model.IdsToDelete ?? new string[] { })
                {
                    AppUser user = await userManager.FindByIdAsync(userId);

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

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
            }
            if (ModelState.IsValid)
            {
                TempData["SuccessMessage"] = "Udało się zapisać użytkowników w grupach";
                return(RedirectToAction("Roles"));
            }
            else
            {
                return(await EditRole(model.RoleId));
            }
        }
        public async Task <IActionResult> Edit(RoleModificationViewModel roleModificationViewModel)
        {
            if (ModelState.IsValid)
            {
                foreach (var userId in roleModificationViewModel.ToAdd ?? new string[] { })
                {
                    User user = await this.userManager.FindByIdAsync(userId);

                    if (user != null)
                    {
                        IdentityResult result = await this.userManager.AddToRoleAsync(user, roleModificationViewModel.RoleName);

                        if (!result.Succeeded)
                        {
                            ModelState.AddModelError(string.Empty, result.Errors.ToString());
                        }
                    }
                }

                foreach (var userId in roleModificationViewModel.ToDelete ?? new string[] { })
                {
                    User user = await this.userManager.FindByIdAsync(userId);

                    if (user != null)
                    {
                        IdentityResult result = await this.userManager.RemoveFromRoleAsync(user, roleModificationViewModel.RoleName);

                        if (!result.Succeeded)
                        {
                            ModelState.AddModelError(string.Empty, result.Errors.ToString());
                        }
                    }
                }
            }

            if (ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(await Edit(roleModificationViewModel.RoleId));
            }
        }
        public async Task <IActionResult> RoleUsersMembership(RoleModificationViewModel model)
        {
            var role = await roleManager.FindByIdAsync(model.RoleId);

            if (role == null)
            {
                ViewBag.ErroMessage = $"Sorry, the role with the Id = {model.RoleId} could not be found";
                return(RedirectToAction("NotFound"));
            }
            for (int i = 0; i < model.Obj.Count; i++)
            {
                var user = await userManager.FindByIdAsync(model.Obj[i].UserId);

                IdentityResult result = new IdentityResult();

                if (model.Obj[i].IsSelected && !(await userManager.IsInRoleAsync(user, role.Name)))
                {
                    result = await userManager.AddToRoleAsync(user, role.Name);
                }
                else if (!model.Obj[i].IsSelected && await userManager.IsInRoleAsync(user, role.Name))
                {
                    result = await userManager.RemoveFromRoleAsync(user, role.Name);
                }
                else
                {
                    continue;
                }

                if (result.Succeeded)
                {
                    if (i < model.Obj.Count - 1)
                    {
                        continue;
                    }
                    else
                    {
                        return(RedirectToAction("RoleUsersMembership", new { roleId = model.RoleId }));
                    }
                }
            }
            return(RedirectToAction("RoleUsersMembership", new { roleId = model.RoleId }));
        }
Esempio n. 12
0
        public IActionResult Edit(RoleModificationViewModel model)
        {
            if (ModelState.IsValid)
            {
                foreach (var userLogin in model.LoginsToAdd ?? new string[] { })
                {
                    var user = userService.FindByLogin(userLogin);
                    userService.AddToRole(user, model.RoleName);
                }

                foreach (var userLogin in model.LoginsToDelete ?? new string[] { })
                {
                    var user = userService.FindByLogin(userLogin);
                    userService.RemoveFromRole(user, model.RoleName);
                }

                return(RedirectToAction(nameof(Index)));
            }

            return(RedirectToAction(nameof(Edit), model.RoleId));
        }
Esempio n. 13
0
        public async Task <IActionResult> EditRole(RoleModificationViewModel model)
        {
            if (ModelState.IsValid)
            {
                foreach (int userId in model.IdsToAdd ?? new int[] {})
                {
                    var user = _userServices.GetItem(userId);
                    if (user != null)
                    {
                        var result = await _userServices.AddToRoleAsync(user, model.RoleName);

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
                foreach (var userId in model.IdsToDelete ?? new int[] { })
                {
                    var user = _userServices.GetItem(userId);
                    if (user != null)
                    {
                        var result = await _userServices.RemoveFromRoleAsync(user, model.RoleName);

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
            }

            if (ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Roles)));
            }

            return(await EditRole(model.RoleId));
        }
Esempio n. 14
0
        public async Task <ActionResult> Edit(RoleModificationViewModel model)
        {
            IdentityResult result;

            if (!ModelState.IsValid)
            {
                return(View("Error"));
            }

            foreach (string userId in model.IdsToAdd ?? new string[] { })
            {
                result = await UserManager.AddToRoleAsync(userId, model.RoleName);

                if (!result.Succeeded)
                {
                    return(View("Error"));
                }
            }
            foreach (var userId in model.IdsToDelete ?? new string[] { })
            {
                //演示用,正式部署时去掉
                var currentUser = await UserManager.FindByIdAsync(userId);

                if (currentUser.UserName == "000000" && model.RoleName == "Administrator")
                {
                    return(View("Error"));
                }

                result = await UserManager.RemoveFromRoleAsync(userId, model.RoleName);

                if (!result.Succeeded)
                {
                    return(View("Error"));
                }
            }
            return(RedirectToAction("Index"));
        }
        public async Task <IdentityResult> UpdateRoleAsync(RoleModificationViewModel model)
        {
            HttpResponseMessage response = await _client.PutAsJsonAsync("api/role", model);

            return(GetIdentityResult(await response.Content.ReadAsAsync <JObject>()));
        }