コード例 #1
0
ファイル: AdminsController.cs プロジェクト: gyroskan/oop_CA
        public async Task<IActionResult> EditUsersInRole(string roleId)
        {
            ViewBag.roleId = roleId;

            var role = await _roleManager.FindByIdAsync(roleId);

            if (role == null)
            {
                ViewBag.ErrorMessage = $"The role '{roleId} cannot be found.";
                return View("NotFound");
            }

            var model = new List<UserEditRole>();

            foreach (var user in _userManager.Users)
            {
                var userRoleViewModel = new UserEditRole
                {
                    UserId = user.Id,
                    UserName = user.UserName
                };

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

                model.Add(userRoleViewModel);
            }

            return View(model);
        }
コード例 #2
0
        public ActionResult Edit(UserEditRole user)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    _userManager.FindById(user.Id).Roles.Clear();
                    _userManager.AddToRole(user.Id, user.Role);

                    TempData["message"] = "Role successfully updated";
                    TempData["color"]   = "alert-success";
                    return(RedirectToAction("Index"));
                }
                catch
                {
                    TempData["message"] = "An error occured";
                    TempData["color"]   = "alert-danger";
                    return(RedirectToAction("Edit", new { userId = Cipher.Encrypt(user.Id) }));
                }
            }


            return(View(user));
        }