コード例 #1
0
        public async Task <IActionResult> EditUsersInRole(ListUserRoleViewModel model, string roleId)
        {
            IdentityRole role = await RoleManager.FindByIdAsync(roleId);

            if (role == null)
            {
                _flashMessage.Danger("You can not edit a role that no longer exists");
                return(RedirectToAction("ListUsers"));
            }

            var currentUser = await GetCurrentUserAsync();

            IList <string> userRoles = await UserManager.GetRolesAsync(currentUser);

            if (!userRoles.Any(r => r.Equals("Admin")))
            {
                _flashMessage.Danger("Your changes were not saved.\n You do not have the right permissions to edit user list in a role.");
                return(RedirectToAction("ListUsers"));
            }

            for (var i = 0; i < model.List.Count; i++)
            {
                Customer user = await UserManager.FindByIdAsync(model.List[i].UserId);

                IdentityResult result;

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

                if (!result.Succeeded)
                {
                    continue;
                }

                if (i < (model.List.Count - 1))
                {
                    continue;
                }

                _flashMessage.Confirmation("Edit user's role succeeded");
                return(RedirectToAction("EditRole", new { Id = roleId }));
            }

            _flashMessage.Confirmation("Edit user's role succeeded");
            return(RedirectToAction("EditRole", new { Id = roleId }));
        }
コード例 #2
0
        public async Task <IActionResult> EditUsersInRole(string roleId)
        {
            ViewBag.roleId = roleId;

            IdentityRole role = await RoleManager.FindByIdAsync(roleId);

            if (role == null)
            {
                _flashMessage.Danger("You can not edit a role that no longer exists");
                return(RedirectToAction("ListUsers"));
            }

            var viewModel = new ListUserRoleViewModel()
            {
                List = new List <UserRoleViewModel>()
            };

            foreach (Customer user in UserManager.Users.ToList())
            {
                var userRoleViewModel = new UserRoleViewModel
                {
                    UserId   = user.Id,
                    UserName = user.Email,
                    Email    = user.Email,
                };

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

                viewModel.List.Add(userRoleViewModel);
            }

            return(View(viewModel));
        }
コード例 #3
0
        // GET: UserRoles/Delete/5
        public ActionResult Delete(string uid, string rid)
        {
            if (uid == null || rid == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UserRoles userRoles = db.IdentityUserRoles.Find(uid, rid);

            if (userRoles == null)
            {
                return(HttpNotFound());
            }
            ListUserRoleViewModel model = new ListUserRoleViewModel
            {
                UserId   = userRoles.UserId,
                UserName = db.Users.Find(userRoles.UserId).UserName,
                RoleId   = userRoles.RoleId,
                Name     = db.IdentityRoles.Find(userRoles.RoleId).Name
            };

            return(View(model));
        }
コード例 #4
0
        // GET: UserRoles
        public ActionResult Index(UserRolesMessageId?message)
        {
            ViewBag.StatusMessage =
                message == UserRolesMessageId.CreateUserRoleFail ? "No se pudo asignar el rol, el usuario ya tiene un rol asignado." :
                message == UserRolesMessageId.CreateRoleFail ? "No se pudo asignar el rol, debe crear al menos un rol para asignar." :
                "";

            List <ListUserRoleViewModel> list = new List <ListUserRoleViewModel>();

            foreach (var item in db.IdentityUserRoles.ToList())
            {
                ListUserRoleViewModel model = new ListUserRoleViewModel
                {
                    UserId   = item.UserId,
                    UserName = db.Users.Find(item.UserId).UserName,
                    RoleId   = item.RoleId,
                    Name     = db.Roles.Find(item.RoleId).Name
                };
                list.Add(model);
            }

            return(View(list.ToList().OrderBy(item => item.UserName)));
        }