Exemplo n.º 1
0
        public async static Task Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                var loggerFactory = services.GetRequiredService <ILoggerFactory>();

                try
                {
                    // Seed Default User
                    var userManager = services.GetRequiredService <UserManager <User> >();

                    var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();

                    await ApplicationDbInitializer.SeedRolesAsync(userManager, roleManager);

                    await ApplicationDbInitializer.SeedDefaultUser(userManager, roleManager);

                    await ApplicationDbInitializer.SeedDefaultModeratorUser(userManager, roleManager);

                    await ApplicationDbInitializer.SeedAdministratorUser(userManager, roleManager);
                }
                catch (System.Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();

                    logger.LogError(ex, "An error occurred when seeding the database.");
                }
            }

            host.Run();
        }
Exemplo n.º 2
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}."
                }));
            }
        }