Пример #1
0
        //public async Task<IActionResult> Index(string userId)
        //{
        //    var viewModel = new List<UserRolesViewModel>();
        //    var user = await _userManager.FindByIdAsync(userId);
        //    ViewData["Title"] = $"{user.UserName} - Roles";
        //    ViewData["Caption"] = $"Manage {user.Email}'s Roles.";
        //    foreach (var role in _roleManager.Roles)
        //    {
        //        var userRolesViewModel = new UserRolesViewModel
        //        {
        //            RoleName = role.Name
        //        };
        //        if (await _userManager.IsInRoleAsync(user, role.Name))
        //        {
        //            userRolesViewModel.Selected = true;
        //        }
        //        else
        //        {
        //            userRolesViewModel.Selected = false;
        //        }
        //        viewModel.Add(userRolesViewModel);
        //    }
        //    var model = new ManageUserRolesViewModel()
        //    {
        //        UserId = userId,
        //        UserRoles = viewModel
        //    };

        //    return View(model);
        //}

        //public async Task<IActionResult> Update(string id, ManageUserRolesViewModel model)
        //{
        //    var user = await _userManager.FindByIdAsync(id);
        //    var roles = await _userManager.GetRolesAsync(user);
        //    var result = await _userManager.RemoveFromRolesAsync(user, roles);
        //    result = await _userManager.AddToRolesAsync(user, model.UserRoles.Where(x => x.Selected).Select(y => y.RoleName));
        //    var currentUser = await _userManager.GetUserAsync(User);
        //    await _signInManager.RefreshSignInAsync(currentUser);
        //    await Infrastructure.Identity.Seeds.DefaultSuperAdminUser.SeedSuperAdminAsync(_userManager, _roleManager);
        //    _notify.Success($"Updated Roles for User '{user.Email}'");
        //    return RedirectToAction("Index", new { userId = id });
        //}
        public async Task <IActionResult> Update(string userId)
        {
            ViewBag.userId = userId;
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found";
                return(View("NotFound"));
            }
            ViewBag.UserName = user.UserName;
            var model = new List <UserRolesEditViewModel>();

            foreach (var role in _roleManager.Roles)
            {
                var userRolesEditViewModel = new UserRolesEditViewModel
                {
                    RoleId   = role.Id,
                    RoleName = role.Name
                };
                if (await _userManager.IsInRoleAsync(user, role.Name))
                {
                    userRolesEditViewModel.Selected = true;
                }
                else
                {
                    userRolesEditViewModel.Selected = false;
                }
                model.Add(userRolesEditViewModel);
            }
            return(View(model));
        }
Пример #2
0
        public async Task <IActionResult> EditUser([FromBody] UserRolesEditViewModel model)
        {
            User user = await userManager.FindByIdAsync(model.userId);

            if (user != null)
            {
                var userRoles = await userManager.GetRolesAsync(user);

                var addedRoles   = model.roles.Except(userRoles);
                var removedRoles = userRoles.Except(model.roles);
                await userManager.AddToRolesAsync(user, addedRoles);

                await userManager.RemoveFromRolesAsync(user, removedRoles);

                return(Ok());
            }

            return(NotFound());
        }