public async Task SaveAsync_ExistingItem_UpdatesRevisionDateOnly(SutProvider<SsoConfigService> sutProvider, Organization organization) { var utcNow = DateTime.UtcNow; var ssoConfig = new SsoConfig { Id = 1, Data = "{}", Enabled = true, OrganizationId = organization.Id, CreationDate = utcNow.AddDays(-10), RevisionDate = utcNow.AddDays(-10), }; sutProvider.GetDependency<ISsoConfigRepository>() .UpsertAsync(ssoConfig).Returns(Task.CompletedTask); await sutProvider.Sut.SaveAsync(ssoConfig, organization); await sutProvider.GetDependency<ISsoConfigRepository>().Received() .UpsertAsync(ssoConfig); Assert.Equal(utcNow.AddDays(-10), ssoConfig.CreationDate); Assert.True(ssoConfig.RevisionDate - utcNow < TimeSpan.FromSeconds(1)); }
public SsoConfigEditViewModel(SsoConfig ssoConfig, II18nService i18nService, GlobalSettings globalSettings) { if (ssoConfig != null) { Id = ssoConfig.Id; Enabled = ssoConfig.Enabled; } SsoConfigurationData configurationData; if (!string.IsNullOrWhiteSpace(ssoConfig?.Data)) { var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, }; configurationData = JsonSerializer.Deserialize <SsoConfigurationData>(ssoConfig.Data, options); } else { configurationData = new SsoConfigurationData(); } Data = new SsoConfigDataViewModel(configurationData, globalSettings); BuildLists(i18nService); }
public async Task SaveAsync(SsoConfig config, Organization organization) { var now = DateTime.UtcNow; config.RevisionDate = now; if (config.Id == default) { config.CreationDate = now; } var useKeyConnector = config.GetData().KeyConnectorEnabled; if (useKeyConnector) { await VerifyDependenciesAsync(config, organization); } var oldConfig = await _ssoConfigRepository.GetByOrganizationIdAsync(config.OrganizationId); var disabledKeyConnector = oldConfig?.GetData()?.KeyConnectorEnabled == true && !useKeyConnector; if (disabledKeyConnector && await AnyOrgUserHasKeyConnectorEnabledAsync(config.OrganizationId)) { throw new BadRequestException("Key Connector cannot be disabled at this moment."); } await LogEventsAsync(config, oldConfig); await _ssoConfigRepository.UpsertAsync(config); }
public AuthenticationController(IOptions <SsoConfig> _ssoConfigs, LoginHelper _loginHelper, HttpPostHelper _httpPostHelper, SiteContext _siteContext, ComputeHashHelper _computeHashHelper) { ssoConfigs = _ssoConfigs.Value; loginHelper = _loginHelper; httpPostHelper = _httpPostHelper; siteContext = _siteContext; computeHashHelper = _computeHashHelper; }
public SsoConfig ToSsoConfig(SsoConfig existingConfig) { existingConfig.Enabled = Enabled; var configurationData = Data.ToConfigurationData(); existingConfig.SetData(configurationData); return(existingConfig); }
public SsoConfig ToSsoConfig(SsoConfig existingConfig) { existingConfig.Enabled = Enabled; var configurationData = Data.ToConfigurationData(); existingConfig.Data = JsonSerializer.Serialize(configurationData, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, }); return(existingConfig); }
public OrganizationSsoResponseModel(Organization organization, GlobalSettings globalSettings, SsoConfig config = null) : base("organizationSso") { if (config != null) { Enabled = config.Enabled; Data = config.GetData(); } Urls = new SsoUrls(organization.Id.ToString(), globalSettings); }
public async Task SaveAsync(SsoConfig config) { var now = DateTime.UtcNow; config.RevisionDate = now; if (config.Id == default) { config.CreationDate = now; } await _ssoConfigRepository.UpsertAsync(config); }
private async Task VerifyDependenciesAsync(SsoConfig config, Organization organization) { if (!organization.UseKeyConnector) { throw new BadRequestException("Organization cannot use Key Connector."); } var singleOrgPolicy = await _policyRepository.GetByOrganizationIdTypeAsync(config.OrganizationId, PolicyType.SingleOrg); if (singleOrgPolicy is not { Enabled : true })
public async void ReplaceAsync_Works_DataMatches(SsoConfig postSsoConfig, SsoConfig replaceSsoConfig, Organization org, SsoConfigCompare equalityComparer, List <EfRepo.SsoConfigRepository> suts, List <EfRepo.OrganizationRepository> efOrgRepos, SqlRepo.SsoConfigRepository sqlSsoConfigRepo, SqlRepo.OrganizationRepository sqlOrganizationRepo) { var savedSsoConfigs = new List <SsoConfig>(); foreach (var sut in suts) { var i = suts.IndexOf(sut); var savedEfOrg = await efOrgRepos[i].CreateAsync(org); sut.ClearChangeTracking(); postSsoConfig.OrganizationId = replaceSsoConfig.OrganizationId = savedEfOrg.Id; var postEfSsoConfig = await sut.CreateAsync(postSsoConfig); sut.ClearChangeTracking(); replaceSsoConfig.Id = postEfSsoConfig.Id; savedSsoConfigs.Add(postEfSsoConfig); await sut.ReplaceAsync(replaceSsoConfig); sut.ClearChangeTracking(); var replacedSsoConfig = await sut.GetByIdAsync(replaceSsoConfig.Id); Assert.True(replacedSsoConfig != null); savedSsoConfigs.Add(replacedSsoConfig); } var sqlOrganization = await sqlOrganizationRepo.CreateAsync(org); postSsoConfig.OrganizationId = sqlOrganization.Id; var postSqlSsoConfig = await sqlSsoConfigRepo.CreateAsync(postSsoConfig); replaceSsoConfig.Id = postSqlSsoConfig.Id; savedSsoConfigs.Add(postSqlSsoConfig); await sqlSsoConfigRepo.ReplaceAsync(replaceSsoConfig); var replacedSqlSsoConfig = await sqlSsoConfigRepo.GetByIdAsync(replaceSsoConfig.Id); Assert.True(replacedSqlSsoConfig != null); savedSsoConfigs.Add(replacedSqlSsoConfig); var distinctItems = savedSsoConfigs.Distinct(equalityComparer); Assert.True(!distinctItems.Skip(2).Any()); }
public async void DeleteAsync_Works_DataMatches(SsoConfig ssoConfig, Organization org, SsoConfigCompare equalityComparer, List <EfRepo.SsoConfigRepository> suts, List <EfRepo.OrganizationRepository> efOrgRepos, SqlRepo.SsoConfigRepository sqlSsoConfigRepo, SqlRepo.OrganizationRepository sqlOrganizationRepo) { foreach (var sut in suts) { var i = suts.IndexOf(sut); var savedEfOrg = await efOrgRepos[i].CreateAsync(org); sut.ClearChangeTracking(); ssoConfig.OrganizationId = savedEfOrg.Id; var postEfSsoConfig = await sut.CreateAsync(ssoConfig); sut.ClearChangeTracking(); var savedEfSsoConfig = await sut.GetByIdAsync(postEfSsoConfig.Id); Assert.True(savedEfSsoConfig != null); sut.ClearChangeTracking(); await sut.DeleteAsync(savedEfSsoConfig); var deletedEfSsoConfig = await sut.GetByIdAsync(savedEfSsoConfig.Id); Assert.True(deletedEfSsoConfig == null); } var sqlOrganization = await sqlOrganizationRepo.CreateAsync(org); ssoConfig.OrganizationId = sqlOrganization.Id; var postSqlSsoConfig = await sqlSsoConfigRepo.CreateAsync(ssoConfig); var savedSqlSsoConfig = await sqlSsoConfigRepo.GetByIdAsync(postSqlSsoConfig.Id); Assert.True(savedSqlSsoConfig != null); await sqlSsoConfigRepo.DeleteAsync(savedSqlSsoConfig); savedSqlSsoConfig = await sqlSsoConfigRepo.GetByIdAsync(postSqlSsoConfig.Id); Assert.True(savedSqlSsoConfig == null); }
public OrganizationSsoResponseModel(Organization organization, GlobalSettings globalSettings, SsoConfig config = null) : base("organizationSso") { if (config != null) { Enabled = config.Enabled; Data = JsonSerializer.Deserialize <SsoConfigurationData>(config.Data, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, }); } else { Data = new SsoConfigurationData(); } Urls = new SsoUrls(organization.Id.ToString(), Data, globalSettings); }
public async void GetManyByRevisionNotBeforeDate_Works(SsoConfig ssoConfig, DateTime notBeforeDate, Organization org, SsoConfigCompare equalityComparer, List <EfRepo.SsoConfigRepository> suts, List <EfRepo.OrganizationRepository> efOrgRepos) { foreach (var sut in suts) { var i = suts.IndexOf(sut); var savedEfOrg = await efOrgRepos[i].CreateAsync(org); sut.ClearChangeTracking(); ssoConfig.OrganizationId = savedEfOrg.Id; await sut.CreateAsync(ssoConfig); sut.ClearChangeTracking(); var returnedEfSsoConfigs = await sut.GetManyByRevisionNotBeforeDate(notBeforeDate); Assert.True(returnedEfSsoConfigs.All(sc => sc.RevisionDate >= notBeforeDate)); } }
public async void GetByIdentifierAsync_Works_DataMatches(SsoConfig ssoConfig, Organization org, SsoConfigCompare equalityComparer, List <EfRepo.SsoConfigRepository> suts, List <EfRepo.OrganizationRepository> efOrgRepos, SqlRepo.SsoConfigRepository sqlSsoConfigRepo, SqlRepo.OrganizationRepository sqlOrgRepo) { var returnedList = new List <SsoConfig>(); foreach (var sut in suts) { var i = suts.IndexOf(sut); var savedEfOrg = await efOrgRepos[i].CreateAsync(org); sut.ClearChangeTracking(); ssoConfig.OrganizationId = savedEfOrg.Id; await sut.CreateAsync(ssoConfig); sut.ClearChangeTracking(); var savedEfSsoConfig = await sut.GetByIdentifierAsync(org.Identifier); Assert.True(savedEfSsoConfig != null); returnedList.Add(savedEfSsoConfig); } var savedSqlOrg = await sqlOrgRepo.CreateAsync(org); ssoConfig.OrganizationId = savedSqlOrg.Id; var postSqlSsoConfig = await sqlSsoConfigRepo.CreateAsync(ssoConfig); var savedSqlSsoConfig = await sqlSsoConfigRepo.GetByIdentifierAsync(org.Identifier); Assert.True(savedSqlSsoConfig != null); returnedList.Add(savedSqlSsoConfig); var distinctItems = returnedList.Distinct(equalityComparer); Assert.True(!distinctItems.Skip(1).Any()); }
public HttpPostHelper(IOptions <SsoConfig> _ssoConfigs, ComputeHashHelper _computeHashHelper) { ssoConfigs = _ssoConfigs.Value; computeHashHelper = _computeHashHelper; }
public HttpPostHelper(IOptions <SsoConfig> _ssoConfigs) { ssoConfigs = _ssoConfigs.Value; }