Example #1
0
        public async Task <BaseApiResponse> UpdateUserRoles(UserRolesForEditDto userRolesForEditDto, ClaimsPrincipal claimsPrincipal)
        {
            try
            {
                if (userRolesForEditDto.UserId == null)
                {
                    return(BaseApiResponseHelper.GenerateApiResponse(true, "update roles for user", null, new List <string> {
                        $"User ID is null."
                    }));
                }

                var user = await _userManager.FindByIdAsync(userRolesForEditDto.UserId);

                if (user == null)
                {
                    return(BaseApiResponseHelper.GenerateApiResponse(true, "update roles for user", null,
                                                                     new List <string> {
                        $"User ID {userRolesForEditDto.UserId} did not match any users."
                    }));
                }

                var roles = await _userManager.GetRolesAsync(user);

                var result = await _userManager.RemoveFromRolesAsync(user, roles);

                // In case we forgot to select any roles for user, we will add this user to role user by default.
                var isUserInAnyRoles = userRolesForEditDto.UserRoles.Any(x => x.Selected == true);

                if (!isUserInAnyRoles)
                {
                    result = await _userManager.AddToRolesAsync(user, new List <string> {
                        Authorization.DEFAULT_ROLE.ToString()
                    });
                }
                else
                {
                    result = await _userManager.AddToRolesAsync(user, userRolesForEditDto.UserRoles.Where(x => x.Selected).Select(y => y.RoleName));
                }

                var currentUser = await _userManager.GetUserAsync(claimsPrincipal);

                await _signInManager.RefreshSignInAsync(currentUser);

                await ApplicationDbInitializer.SeedAdministratorUser(_userManager, _roleManager);

                return(BaseApiResponseHelper.GenerateApiResponse(true, "Update roles for user", null, null));
            }
            catch (Exception ex)
            {
                return(BaseApiResponseHelper.GenerateApiResponse(false, "update roles for user", null, new List <string> {
                    $"{ex.Message}."
                }));
            }
        }
Example #2
0
        public async Task <IActionResult> UpdateUserRoles([FromBody] UserRolesForEditDto userRolesForEditDto)
        {
            var response = await _userRoleService.UpdateUserRoles(userRolesForEditDto, User);

            if (!response.Succeeded)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
Example #3
0
        public async Task <BaseApiResponse> GetUserRoles(string userId)
        {
            try
            {
                if (userId == null)
                {
                    return(BaseApiResponseHelper.GenerateApiResponse(true, "get roles for user", null, new List <string> {
                        $"User ID is null."
                    }));
                }

                var user = await _userManager.FindByIdAsync(userId);

                if (user == null)
                {
                    return(BaseApiResponseHelper.GenerateApiResponse(true, "get roles for user", null,
                                                                     new List <string> {
                        $"User ID {userId} did not match any users."
                    }));
                }

                var listUserRolesDto = new List <UserRolesDto>();

                foreach (var role in await _roleManager.Roles.ToListAsync())
                {
                    var userRolesDto = new UserRolesDto
                    {
                        RoleName = role.Name
                    };

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

                    listUserRolesDto.Add(userRolesDto);
                }

                var data = new UserRolesForEditDto
                {
                    UserId    = user.Id,
                    Username  = user.UserName,
                    Email     = user.Email,
                    UserRoles = listUserRolesDto
                };

                return(BaseApiResponseHelper.GenerateApiResponse(true, "Get roles for user", new List <UserRolesForEditDto> {
                    data
                }, null));
            }
            catch (Exception ex)
            {
                return(BaseApiResponseHelper.GenerateApiResponse(false, "get roles for user", null, new List <string> {
                    $"{ex.Message}."
                }));
            }
        }