/// <summary> /// Constructor /// </summary> /// <param name="userDbAccess">User Db Access</param> /// <param name="userCreator">User Creator</param> /// <param name="configuration">Configuration</param> /// <param name="logger">Logger</param> public DeploymentController(IUserDbAccess userDbAccess, IUserCreator userCreator, IOptions <ConfigurationData> configuration, ILogger <DeploymentController> logger) { _userDbAccess = userDbAccess; _userCreator = userCreator; _firstTimeDeploymentPassword = configuration.Value.Misc.FirstTimeDeploymentPassword; _logger = logger; }
/// <summary> /// Checks for migratable data /// </summary> /// <param name="cancellationToken">Cancellation Token</param> /// <returns>Task for the async task</returns> public async Task StartAsync(CancellationToken cancellationToken) { using (IServiceScope serviceScope = _serviceScopeFactory.CreateScope()) { IUserDbAccess userDbAccess = (IUserDbAccess)serviceScope.ServiceProvider.GetService(typeof(IUserDbAccess)); IDbSetup dbSetup = (IDbSetup)serviceScope.ServiceProvider.GetService(typeof(IDbSetup)); ILogger logger = (ILogger)serviceScope.ServiceProvider.GetService(typeof(ILogger <AutoDataMigrator>)); try { await RemoveUnusedRolesForUsers(userDbAccess); } catch (Exception ex) { logger.LogError(ex, "Could not remove old user roles"); } try { await dbSetup.CheckForNeededMigrations(); } catch (Exception ex) { logger.LogError(ex, "Could not migrate database"); } } }
/// <summary> /// Configures the admin account /// </summary> /// <returns>Task</returns> private static async Task ConfigureAdminAccount() { ServiceProvider serviceProvider = ServiceProviderBuilder.BuildServiceProvider(); IUserDbAccess userDbAccess = serviceProvider.GetService <IUserDbAccess>(); if (await userDbAccess.DoesAdminUserExist()) { MessageService.PrintAdminAccountExistMessage(); return; } string email; do { try { string displayName = MessageService.GetAdminAccountDisplayName(); email = MessageService.GetAdminAccountEMail(); string password = MessageService.GetAdminAccountPassword(); IUserCreator userCreator = serviceProvider.GetService <IUserCreator>(); IdentityResult result = await userCreator.CreateUser(new MockUrlHelper(), "https", displayName, email, password, RoleNames.Administrator); if (!result.Succeeded) { throw new Exception(string.Join(',', result.Errors.Select(e => e.Description))); } MessageService.PrintSuccessCreatingAdminAccount(); break; } catch (Exception ex) { MessageService.PrintErrorCreatingAdminAccount(ex); } }while(true); try { UserManager <GoNorthUser> userManager = serviceProvider.GetService <UserManager <GoNorthUser> >(); GoNorthUser adminUser = await userManager.FindByEmailAsync(email); List <string> rolesToAdd = RoleNames.GetAllRoleNames().Where(r => r != RoleNames.Administrator).ToList(); IdentityResult result = await userManager.AddToRolesAsync(adminUser, rolesToAdd); if (!result.Succeeded) { throw new Exception(string.Join(',', result.Errors.Select(e => e.Description))); } } catch (Exception ex) { MessageService.PrintErrorAssignAllRolesToUser(ex); } }
/// <summary> /// Constructor /// </summary> /// <param name="userDbAccess">User Db Access</param> /// <param name="userCreator">User Creator</param> /// <param name="userManager">User Manager</param> /// <param name="timelineService">Timeline Service</param> /// <param name="logger">Logger</param> /// <param name="localizerFactory">Localizer Factory</param> public UserApiController(IUserDbAccess userDbAccess, IUserCreator userCreator, UserManager <GoNorthUser> userManager, ITimelineService timelineService, ILogger <UserApiController> logger, IStringLocalizerFactory localizerFactory) { _userDbAccess = userDbAccess; _userCreator = userCreator; _userManager = userManager; _timelineService = timelineService; _logger = logger; _localizer = localizerFactory.Create(typeof(UserApiController)); }
/// <summary> /// Removes the unused roles for the users /// </summary> /// <param name="userDbAccess">Usser Db Access</param> /// <returns>Task</returns> private async Task RemoveUnusedRolesForUsers(IUserDbAccess userDbAccess) { List <string> existingRoles = RoleNames.GetAllRoleNames(); IList <GoNorthUser> users = await userDbAccess.GetUsers(0, int.MaxValue); foreach (GoNorthUser curUser in users) { IEnumerable <string> deletedRoles = curUser.Roles.Except(existingRoles); if (deletedRoles != null && deletedRoles.Any()) { GoNorthUser user = await userDbAccess.GetUserById(curUser.Id); user.Roles = curUser.Roles.Except(deletedRoles).ToList(); await userDbAccess.UpdateUser(user); } } }
/// <summary> /// Constructor /// </summary> /// <param name="userDbAccess">User Db Access</param> /// <param name="logger">Logger</param> public UtilApiController(IUserDbAccess userDbAccess, ILogger <UtilApiController> logger) { _userDbAccess = userDbAccess; _logger = logger; }
public UserService(IUserDbAccess dbAccess, JWTOptions jwtOptions) { this.dbAccess = dbAccess; this.jwtOptions = jwtOptions; }
public UserService(IUserDbAccess dbAccess, IOptions <JWTOptions> jwtOptions) : this(dbAccess, jwtOptions.Value) { }
/// <summary> /// Constructor /// </summary> /// <param name="userDbAccess">User Database Access</param> public GoNorthUserStore(IUserDbAccess userDbAccess) { _UserDbAccess = userDbAccess; }
/// <summary> /// Constructor /// </summary> /// <param name="userDbAccess">User Database Access</param> /// <param name="userPreferencesDbAccess">User Preferences Database Access</param> public GoNorthUserStore(IUserDbAccess userDbAccess, IUserPreferencesDbAccess userPreferencesDbAccess) { _UserDbAccess = userDbAccess; _UserPreferencesDbAccess = userPreferencesDbAccess; }
/// <summary> /// Constructor /// </summary> /// <param name="dbSetup">Database setup</param> /// <param name="userDbAccess">User database access</param> /// <param name="logger">Logger</param> public AutoDataMigrator(IDbSetup dbSetup, IUserDbAccess userDbAccess, ILogger <AutoDataMigrator> logger) { _dbSetup = dbSetup; _userDbAccess = userDbAccess; _logger = logger; }