Esempio n. 1
0
        public async Task <ActionResult> AddRoleToUser(RolesAndUsersDropDownViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(GetRolesAndUsersForDropDownList()));
            }

            var user = await UserManager.FindByNameAsync(model.SelectedUserName);

            var role = await RoleManager.FindByNameAsync(model.SelectedRoleName);

            if (user == null)
            {
                ModelState.AddModelError("", "User not found");
                return(View(GetRolesAndUsersForDropDownList()));
            }

            if (role == null)
            {
                ModelState.AddModelError("", "Role not found");
                return(View(GetRolesAndUsersForDropDownList()));
            }

            if (UserManager.IsInRole(user.Id, model.SelectedRoleName))
            {
                ModelState.AddModelError("", "This user already has the role specified !");
                return(View(GetRolesAndUsersForDropDownList()));
            }

            await UserManager.AddToRoleAsync(user.Id, role.Name);

            if (User.Identity.GetUserId() == user.Id)
            {
                AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
            }
            return(RedirectToAction("Index", new RolesAndUsersDropDownViewModel {
                SelectedUserName = model.SelectedUserName
            }));
        }
Esempio n. 2
0
        private RolesAndUsersDropDownViewModel GetRolesAndUsersForDropDownList()
        {
            var roles = RoleManager.Roles.ToList();
            var users = UserManager.Users.ToList();

            var rolesAndUsers = new RolesAndUsersDropDownViewModel()
            {
                Roles = roles.Select(s => new SelectListItem
                {
                    Value = s.Name,
                    Text  = s.Name
                }),

                Users = users.Select(s => new SelectListItem
                {
                    Value = s.UserName,
                    Text  = s.UserName
                })
            };

            return(rolesAndUsers);
        }