public DbTenantService(TenantDomainValidator tenantDomainValidator) { TenantDomainValidator = tenantDomainValidator; FromDbTenantToTenant = r => new Tenant { Calls = r.Calls, CreatedDateTime = r.CreationDateTime, Industry = r.Industry != null ? r.Industry.Value : TenantIndustry.Other, Language = r.Language, LastModified = r.LastModified, Name = r.Name, OwnerId = r.OwnerId, PaymentId = r.PaymentId, Spam = r.Spam, Status = r.Status, StatusChangeDate = r.StatusChanged, TenantAlias = r.Alias, TenantId = r.Id, MappedDomain = r.MappedDomain, Version = r.Version, VersionChanged = r.VersionChanged, TrustedDomainsRaw = r.TrustedDomains, TrustedDomainsType = r.TrustedDomainsEnabled, AffiliateId = r.Partner != null ? r.Partner.AffiliateId : null, PartnerId = r.Partner != null ? r.Partner.PartnerId : null, TimeZone = r.TimeZone }; var fromDbTenantToTenant = FromDbTenantToTenant.Compile(); FromTenantUserToTenant = r => fromDbTenantToTenant(r.DbTenant); }
public PortalController( IConfiguration configuration, Core.SecurityContext securityContext, TenantManager tenantManager, SettingsManager settingsManager, ApiSystemHelper apiSystemHelper, CommonMethods commonMethods, HostedSolution hostedSolution, CoreSettings coreSettings, TenantDomainValidator tenantDomainValidator, UserFormatter userFormatter, UserManagerWrapper userManagerWrapper, CommonConstants commonConstants, IOptionsMonitor <ILog> option, TimeZonesProvider timeZonesProvider, TimeZoneConverter timeZoneConverter) { Configuration = configuration; SecurityContext = securityContext; TenantManager = tenantManager; SettingsManager = settingsManager; ApiSystemHelper = apiSystemHelper; CommonMethods = commonMethods; HostedSolution = hostedSolution; CoreSettings = coreSettings; TenantDomainValidator = tenantDomainValidator; UserFormatter = userFormatter; UserManagerWrapper = userManagerWrapper; CommonConstants = commonConstants; TimeZonesProvider = timeZonesProvider; TimeZoneConverter = timeZoneConverter; Log = option.Get("ASC.ApiSystem"); }
public ConfigureDbTenantService( TenantDomainValidator tenantDomainValidator, DbContextManager <TenantDbContext> dbContextManager) { TenantDomainValidator = tenantDomainValidator; DbContextManager = dbContextManager; }
public RegistrationController( CommonMethods commonMethods, CommonConstants commonConstants, IOptionsSnapshot <HostedSolution> hostedSolution, TimeZonesProvider timeZonesProvider, TimeZoneConverter timeZoneConverter, ApiSystemHelper apiSystemHelper, SecurityContext securityContext, TenantManager tenantManager, SettingsManager settingsManager, CoreSettings coreSettings, TenantDomainValidator tenantDomainValidator, UserFormatter userFormatter, UserManagerWrapper userManagerWrapper, IConfiguration configuration, IOptionsMonitor <ILog> option, PasswordHasher passwordHasher) { CommonMethods = commonMethods; CommonConstants = commonConstants; HostedSolution = hostedSolution.Value; TimeZonesProvider = timeZonesProvider; TimeZoneConverter = timeZoneConverter; ApiSystemHelper = apiSystemHelper; SecurityContext = securityContext; TenantManager = tenantManager; SettingsManager = settingsManager; CoreSettings = coreSettings; TenantDomainValidator = tenantDomainValidator; UserFormatter = userFormatter; UserManagerWrapper = userManagerWrapper; Configuration = configuration; PasswordHasher = passwordHasher; Log = option.Get("ASC.ApiSystem"); }
public HostedSolution( IConfiguration configuration, ConnectionStringSettings connectionString, TariffServiceStorage tariffServiceStorage, IOptionsMonitor <ILog> options, TenantUtil tenantUtil, TenantDomainValidator tenantDomainValidator, TenantDbContext tenantDbContext, UserDbContext userDbContext, CoreDbContext coreDbContext, string region) { tenantService = new DbTenantService(tenantDbContext, tenantDomainValidator); var baseSettings = new CoreBaseSettings(configuration); coreSettings = new CoreSettings(tenantService, baseSettings, configuration); userService = new EFUserService(userDbContext); quotaService = new DbQuotaService(coreDbContext); tariffService = new TariffService(quotaService, tenantService, baseSettings, coreSettings, configuration, coreDbContext, tariffServiceStorage, options); clientTenantManager = new TenantManager(tenantService, quotaService, tariffService, null, baseSettings, coreSettings); settingsManager = new DbSettingsManager(connectionString); TenantUtil = tenantUtil; Region = region ?? string.Empty; }
private void ValidateDomain(IDbManager db, string domain, int tenantId, bool validateCharacters) { // size TenantDomainValidator.ValidateDomainLength(domain); // characters if (validateCharacters) { TenantDomainValidator.ValidateDomainCharacters(domain); } // forbidden or exists var exists = false; domain = domain.ToLowerInvariant(); if (!exists) { if (forbiddenDomains == null) { forbiddenDomains = ExecList(new SqlQuery("tenants_forbiden").Select("address")).Select(r => (string)r[0]).ToList(); } exists = tenantId != 0 && forbiddenDomains.Contains(domain); } if (!exists) { exists = 0 < db.ExecuteScalar <int>(new SqlQuery("tenants_tenants").SelectCount().Where(Exp.Eq("alias", domain) & !Exp.Eq("id", tenantId))); } if (!exists) { exists = 0 < db.ExecuteScalar <int>(new SqlQuery("tenants_tenants").SelectCount() .Where(Exp.Eq("mappeddomain", domain) & !Exp.Eq("id", tenantId) & !Exp.In("status", new [] { (int)TenantStatus.RemovePending, (int)TenantStatus.Restoring }))); } if (exists) { // cut number suffix while (true) { if (6 < domain.Length && char.IsNumber(domain, domain.Length - 1)) { domain = domain.Substring(0, domain.Length - 1); } else { break; } } var q = new SqlQuery("tenants_forbiden").Select("address").Where(Exp.Like("address", domain, SqlLike.StartWith)) .Union(new SqlQuery("tenants_tenants").Select("alias").Where(Exp.Like("alias", domain, SqlLike.StartWith) & !Exp.Eq("id", tenantId))) .Union(new SqlQuery("tenants_tenants").Select("mappeddomain") .Where(Exp.Like("mappeddomain", domain, SqlLike.StartWith) & !Exp.Eq("id", tenantId) & !Exp.Eq("status", (int)TenantStatus.RemovePending))); var existsTenants = db.ExecuteList(q).ConvertAll(r => (string)r[0]); throw new TenantAlreadyExistsException("Address busy.", existsTenants); } }
public DbTenantService( DbContextManager <TenantDbContext> dbContextManager, TenantDomainValidator tenantDomainValidator, MachinePseudoKeys machinePseudoKeys) : this() { TenantDbContext = dbContextManager.Value; TenantDomainValidator = tenantDomainValidator; MachinePseudoKeys = machinePseudoKeys; }
public HostedSolution( IConfiguration configuration, TenantDomainValidator tenantDomainValidator, TimeZoneConverter timeZoneConverter, DbRegistry dbRegistry, ConnectionStringSettings connectionString, TariffServiceStorage tariffServiceStorage, IOptionsMonitor <ILog> options) : this(configuration, tenantDomainValidator, timeZoneConverter, dbRegistry, connectionString, tariffServiceStorage, options, null) { }
public HostedSolution( IConfiguration configuration, ConnectionStringSettings connectionString, TariffServiceStorage tariffServiceStorage, IOptionsMonitor <ILog> options, TenantUtil tenantUtil, TenantDomainValidator tenantDomainValidator, TenantDbContext tenantDbContext, UserDbContext userDbContext, CoreDbContext coreDbContext) : this(configuration, connectionString, tariffServiceStorage, options, tenantUtil, tenantDomainValidator, tenantDbContext, userDbContext, coreDbContext, null) { }
private void ValidateDomain(string domain) { // size TenantDomainValidator.ValidateDomainLength(domain); // characters TenantDomainValidator.ValidateDomainCharacters(domain); var sameAliasTenants = ApiSystemHelper.FindTenantsInCache(domain, SecurityContext.CurrentAccount.ID); if (sameAliasTenants != null) { throw new TenantAlreadyExistsException("Address busy.", sameAliasTenants); } }
public MultiRegionHostedSolution(string dbid, IConfiguration configuraion, CookieStorage cookieStorage, EFLoggerFactory loggerFactory, TariffServiceStorage tariffServiceStorage, IOptionsMonitor <ILog> options, TenantUtil tenantUtil, TenantDomainValidator tenantDomainValidator) { this.dbid = dbid; Configuraion = configuraion; CookieStorage = cookieStorage; LoggerFactory = loggerFactory; TariffServiceStorage = tariffServiceStorage; Options = options; TenantUtil = tenantUtil; TenantDomainValidator = tenantDomainValidator; Initialize(); }
private void ValidateDomain(string domain, int tenantId, bool validateCharacters) { // size TenantDomainValidator.ValidateDomainLength(domain); // characters if (validateCharacters) { TenantDomainValidator.ValidateDomainCharacters(domain); } // forbidden or exists var exists = false; domain = domain.ToLowerInvariant(); if (!exists) { if (forbiddenDomains == null) { forbiddenDomains = TenantDbContext.TenantForbiden.Select(r => r.Address).ToList(); } exists = tenantId != 0 && forbiddenDomains.Contains(domain); } if (!exists) { exists = 0 < TenantDbContext.Tenants.Where(r => r.Alias == domain && r.Id != tenantId).Count(); } if (!exists) { exists = 0 < TenantDbContext.Tenants .Where(r => r.MappedDomain == domain && r.Id != tenantId && !(r.Status == TenantStatus.RemovePending || r.Status == TenantStatus.Restoring)) .Count(); } if (exists) { // cut number suffix while (true) { if (6 < domain.Length && char.IsNumber(domain, domain.Length - 1)) { domain = domain[0..^ 1];
public MultiRegionHostedSolution(string dbid, IConfiguration configuraion, TenantDomainValidator tenantDomainValidator, TimeZoneConverter timeZoneConverter, CookieStorage cookieStorage, DbRegistry dbRegistry, DbOptionsManager dbOptions, TariffServiceStorage tariffServiceStorage, IOptionsMonitor <ILog> options) { this.dbid = dbid; Configuraion = configuraion; TenantDomainValidator = tenantDomainValidator; TimeZoneConverter = timeZoneConverter; CookieStorage = cookieStorage; DbRegistry = dbRegistry; DbOptions = dbOptions; TariffServiceStorage = tariffServiceStorage; Options = options; Initialize(); }
//TODO:fix public HostedSolution( IConfiguration configuration, TenantDomainValidator tenantDomainValidator, TimeZoneConverter timeZoneConverter, DbRegistry dbRegistry, ConnectionStringSettings connectionString, TariffServiceStorage tariffServiceStorage, IOptionsMonitor <ILog> options, string region) { tenantService = new DbTenantService(null, null, null); var baseSettings = new CoreBaseSettings(configuration); coreSettings = new CoreSettings(tenantService, baseSettings, configuration); userService = new DbUserService(null); quotaService = new DbQuotaService(null); tariffService = new TariffService(quotaService, tenantService, baseSettings, coreSettings, configuration, null, tariffServiceStorage, options); clientTenantManager = new TenantManager(tenantService, quotaService, tariffService, null, baseSettings, coreSettings); settingsManager = new DbSettingsManager(connectionString); Region = region ?? string.Empty; DbId = connectionString.Name; }
public DbTenantService(DbContextManager <TenantDbContext> dbContextManager, TenantDomainValidator tenantDomainValidator) : this() { TenantDbContext = dbContextManager.Value; TenantDomainValidator = tenantDomainValidator; }
public DbTenantService(TenantDbContext dbContextManager, TenantDomainValidator tenantDomainValidator) : this(tenantDomainValidator) { TenantDbContext = dbContextManager; }
public DbTenantService(DbOptionsManager dbOptionsManager, TenantDomainValidator tenantDomainValidator, TimeZoneConverter timeZoneConverter) : base(dbOptionsManager, null) { TenantDomainValidator = tenantDomainValidator; TimeZoneConverter = timeZoneConverter; }