Пример #1
0
        public async Task <IActionResult> EditUserInRole(string roleId)
        {
            var role = await _roleManager.FindByIdAsync(roleId);

            if (role == null)
            {
                ViewBag.ErrorMessage = $"User with id={roleId} not found";
                return(View("NotFound"));
            }
            List <UserInRoleModel> models = new List <UserInRoleModel> ();

            foreach (var user in _userManager.Users.ToList())
            {
                UserInRoleModel model = new UserInRoleModel();
                model.UserId   = user.Id;
                model.Username = user.UserName;
                if (await _userManager.IsInRoleAsync(user, role.Name))
                {
                    model.IsSelected = true;
                }
                else
                {
                    model.IsSelected = false;
                }
                models.Add(model);
            }
            return(View(models));
        }
Пример #2
0
        public async Task <IHttpActionResult> ManageUserInRole(UserInRoleModel model)
        {
            var role = await this.AppRoleManager.FindByIdAsync(model.Id);

            if (role == null)
            {
                ModelState.AddModelError("", "Role does not exist");
                return(BadRequest(ModelState));
            }

            var user = model.EnrolledUser;

            if (user != null)
            {
                var appUser = await this.AppUserManager.FindByIdAsync(user);

                if (appUser == null)
                {
                    ModelState.AddModelError("", String.Format("User: {0} does not exists", user));
                }

                if (!this.AppUserManager.IsInRole(user, role.Name))
                {
                    IdentityResult result = await this.AppUserManager.AddToRoleAsync(user, role.Name);

                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError("", String.Format("User: {0} could not be added to role", user));
                    }
                }
            }


            user = model.RemovedUser;

            if (user != null)
            {
                var appUser = await this.AppUserManager.FindByIdAsync(user);

                if (appUser == null)
                {
                    ModelState.AddModelError("", String.Format("User: {0} does not exists", user));
                }

                IdentityResult resultRemove = await this.AppUserManager.RemoveFromRoleAsync(user, role.Name);

                if (!resultRemove.Succeeded)
                {
                    ModelState.AddModelError("", String.Format("User: {0} could not be removed from role", user));
                }


                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
            }

            return(Ok());
        }
Пример #3
0
        public async Task <IHttpActionResult> ManageUsersInRole(UserInRoleModel userInRoleModel)
        {
            IdentityRole identityRole = await ApplicationRoleManager.FindByIdAsync(userInRoleModel.Id);

            if (identityRole == null)
            {
                ModelState.AddModelError("", "Role does not exist");
                return(BadRequest(ModelState));
            }

            foreach (string userId in userInRoleModel.EnrolledUsers)
            {
                ApplicationUser applicationUser = await ApplicationUserManager.FindByIdAsync(userId);

                if (applicationUser == null)
                {
                    ModelState.AddModelError("", $"User by Id: {userId} dous not exist");
                    continue;
                }

                if (!ApplicationUserManager.IsInRole(userId, identityRole.Name))
                {
                    IdentityResult identityResult =
                        await ApplicationUserManager.AddToRoleAsync(userId, identityRole.Name);

                    if (!identityResult.Succeeded)
                    {
                        ModelState.AddModelError("", $"User by Id: {userId} could not be added to role");
                    }
                }
            }

            foreach (string userId in userInRoleModel.RemovedUsers)
            {
                ApplicationUser applicationUser = await ApplicationUserManager.FindByIdAsync(userId);

                if (applicationUser == null)
                {
                    ModelState.AddModelError("", $"User by Id: {userId} does not exist");
                    continue;
                }

                IdentityResult identityResult =
                    await ApplicationUserManager.RemoveFromRoleAsync(userId, identityRole.Name);

                if (!identityResult.Succeeded)
                {
                    ModelState.AddModelError("", $"User by Id: {userId} could not be removed from role");
                }
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok());
        }
Пример #4
0
        // GET: Admin/Users
        public async Task <ActionResult> Index(int?page, string search)
        {
            var    rolesAssigneed = canLoggedInUserView();
            string roleCanView    = "Admin";

            if (rolesAssigneed != null)
            {
                var element = rolesAssigneed.Where(x => x.StartsWith(roleCanView)).FirstOrDefault();
                if (element != roleCanView)
                {
                    return(RedirectToAction("Unauthorized", "Access"));
                }
                else
                {
                    ViewBag.CurrentSearch = search;
                    var listUserRoles               = new List <UserandRolesViewModel>();
                    var listUsersInRoleOnly         = new List <UserInRoleModel>();
                    UserandRolesViewModel mainModel = new UserandRolesViewModel();

                    var Users = UserManager.Users;

                    foreach (var user in Users)
                    {
                        var r = new UserandRolesViewModel
                        {
                            FullName = user.FullName,
                            UserName = user.UserName,
                            Email    = user.Email,
                            UserId   = user.Id
                        };
                        listUserRoles.Add(r);
                    }
                    foreach (var user in listUserRoles)
                    {
                        if (!String.IsNullOrEmpty(search))
                        {
                            user.RoleNames = await UserManager.GetRolesAsync(Users.First(i => i.UserName == search).Id);

                            foreach (var role in user.RoleNames)
                            {
                                if (user.Email.Equals(search))
                                {
                                    UserInRoleModel model = new UserInRoleModel();
                                    model.Email    = user.Email;
                                    model.FullName = user.FullName;
                                    model.RoleName = role;
                                    model.UserId   = user.UserId;
                                    listUsersInRoleOnly.Add(model);
                                }
                                else
                                {
                                }
                            }
                        }

                        else
                        {
                            user.RoleNames = await UserManager.GetRolesAsync(Users.First(i => i.UserName == user.UserName).Id);

                            foreach (var role in user.RoleNames)
                            {
                                if (role != null)
                                {
                                    UserInRoleModel model = new UserInRoleModel();
                                    model.Email    = user.Email;
                                    model.FullName = user.FullName;
                                    model.RoleName = role;
                                    model.UserId   = user.UserId;
                                    listUsersInRoleOnly.Add(model);
                                }
                            }
                        }
                    }
                    int pageSize   = 50;
                    int pageNumber = page ?? 1;

                    mainModel.UserInRoleModels = listUsersInRoleOnly.ToPagedList <UserInRoleModel>(pageNumber, pageSize);


                    return(View(mainModel));
                }
            }
            else
            {
                AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
            }
            return(RedirectToAction("Login", "Access"));
        }