Exemplo n.º 1
0
        public async Task <IActionResult> UpdateUserRoles([FromBody] UpdateUserRolesViewModel request)
        {
            var success = true;
            var message = "";

            if (!User.IsOwner())
            {
                request.NewOwners = new List <int>();
                message           = "Admins cannot create Owners!";
            }
            var allRoles = new List <string>()
            {
                "Owner", "Admin", "User"
            };

            try
            {
                var tasks = new List <Task>();
                tasks.AddRange(request.NewOwners.Select(o => ProcessRoleChange(o, "Owner", allRoles)));
                tasks.AddRange(request.NewAdmins.Select(a => ProcessRoleChange(a, "Admin", allRoles)));
                tasks.AddRange(request.NewUsers.Select(u => ProcessRoleChange(u, "User", allRoles)));

                await Task.WhenAll(tasks);
            }
            catch (Exception ex)
            {
                success = false;
                message = ex.Message;
            }

            return(Json(new { Success = success, Message = message }));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateUserRole(UpdateUserRolesViewModel userVM)
        {
            if (ModelState.IsValid)
            {
                await userRolesService.UpdateUserRoles(userVM);

                return(NoContent());
            }
            else
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new { internalMessage = "Modelstate is invalid!" }));
            }
        }
Exemplo n.º 3
0
        public async Task UpdateUserRoles(UpdateUserRolesViewModel userVM)
        {
            var appUser = await userManager.FindByIdAsync(userVM.UserId);

            var roles = await userManager.GetRolesAsync(appUser);

            if (roles != null && roles.Count > 0)
            {
                await userManager.RemoveFromRolesAsync(appUser, roles);
            }

            foreach (var roleId in userVM.SelectedRoleIds)
            {
                var roleName = (await roleManager.FindByIdAsync(roleId)).Name;
                await userManager.AddToRoleAsync(appUser, roleName);
            }
        }
Exemplo n.º 4
0
        public async Task <ICollection <UpdateUserRolesViewModel> > GetUsers()
        {
            var roles = roleManager.Roles.ToList();

            List <UpdateUserRolesViewModel> usersVM = new List <UpdateUserRolesViewModel>();

            foreach (var user in userManager.Users)
            {
                UpdateUserRolesViewModel userVM = new UpdateUserRolesViewModel
                {
                    UserId    = user.Id,
                    FirstName = user.FirstName,
                    LastName  = user.LastName,
                    UserName  = user.UserName,
                    Roles     = new List <SelectListItem>()
                };

                foreach (var role in roles)
                {
                    if (await userManager.IsInRoleAsync(user, role.Name))
                    {
                        userVM.Roles.Add(new SelectListItem
                        {
                            Value    = role.Id,
                            Text     = role.Name,
                            Selected = true
                        });
                    }
                    else
                    {
                        userVM.Roles.Add(new SelectListItem
                        {
                            Value = role.Id,
                            Text  = role.Name,
                        });
                    }
                }

                usersVM.Add(userVM);
            }
            return(usersVM);
        }