public bool SaveAuthKeys(string name, List <AuthKey> props) { SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings); if (!SetupInfo.IsVisibleSettings(ManagementType.ThirdPartyAuthorization.ToString()) || !SaveAvailable) { throw new BillingException(Resource.ErrorNotAllowedOption, "ThirdPartyAuthorization"); } var changed = false; var consumer = ConsumerFactory.GetByName(name); var validateKeyProvider = (IValidateKeysProvider)ConsumerFactory.Consumers.FirstOrDefault(r => r.Name == consumer.Name && r is IValidateKeysProvider); if (validateKeyProvider != null) { RemoveOldNumberFromTwilio(validateKeyProvider); ClearUrlShortenerInstance(validateKeyProvider); } if (props.All(r => string.IsNullOrEmpty(r.Value))) { consumer.Clear(); changed = true; } else { foreach (var authKey in props.Where(authKey => consumer[authKey.Name] != authKey.Value)) { consumer[authKey.Name] = authKey.Value; changed = true; } } //TODO: Consumer implementation required (Bug 50606) var allPropsIsEmpty = consumer.GetType() == typeof(SmscProvider) ? consumer.ManagedKeys.All(key => string.IsNullOrEmpty(consumer[key])) : consumer.All(r => string.IsNullOrEmpty(r.Value)); if (validateKeyProvider != null && !validateKeyProvider.ValidateKeys() && !allPropsIsEmpty) { consumer.Clear(); throw new ArgumentException(Resource.ErrorBadKeys); } if (changed) { MessageService.Send(HttpContext.Current.Request, MessageAction.AuthorizationKeysSetting); } return(changed); }
private string GetLink(string token) { var tgProvider = (ITelegramLoginProvider)ConsumerFactory.GetByName("Telegram"); var botname = tgProvider == null ? default(string) : tgProvider.TelegramBotName; if (string.IsNullOrEmpty(botname)) { return(null); } return(string.Format("t.me/{0}?start={1}", botname, token)); }
public CdnStorageSettings UpdateCdn(StorageModel model) { SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings); if (!CoreContext.Configuration.Standalone) { return(null); } var consumer = ConsumerFactory.GetByName(model.Module); if (!consumer.IsSet) { throw new ArgumentException("module"); } var settings = CdnStorageSettings.Load(); if (settings.Module == model.Module) { return(settings); } settings.Module = model.Module; settings.Props = model.Props.ToDictionary(r => r.Key, b => b.Value); try { using var migrateClient = new ServiceClient(); migrateClient.UploadCdn(Tenant.TenantId, "/", WebHostEnvironment.ContentRootPath, settings); } catch (Exception e) { LogManager.GetLogger("ASC").Error("UpdateCdn", e); throw; } return(settings); }
public DataStoreConsumer DataStoreConsumer <T>(BaseStorageSettings <T> baseStorageSettings) where T : class, ISettings, new() { if (string.IsNullOrEmpty(baseStorageSettings.Module) || baseStorageSettings.Props == null) { return(dataStoreConsumer = new DataStoreConsumer()); } var consumer = ConsumerFactory.GetByName <DataStoreConsumer>(baseStorageSettings.Module); if (!consumer.IsSet) { return(dataStoreConsumer = new DataStoreConsumer()); } dataStoreConsumer = (DataStoreConsumer)consumer.Clone(); foreach (var prop in baseStorageSettings.Props) { dataStoreConsumer[prop.Key] = prop.Value; } return(dataStoreConsumer); }
public StorageSettings UpdateStorage(StorageModel model) { SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings); if (!CoreContext.Configuration.Standalone) { return(null); } var consumer = ConsumerFactory.GetByName(model.Module); if (!consumer.IsSet) { throw new ArgumentException("module"); } var settings = StorageSettings.Load(); if (settings.Module == model.Module) { return(settings); } settings.Module = model.Module; settings.Props = model.Props.ToDictionary(r => r.Key, b => b.Value); try { StartMigrate(settings); } catch (Exception e) { LogManager.GetLogger("ASC").Error("UpdateStorage", e); throw; } return(settings); }
public Schedule GetSchedule() { DemandPermissionsBackup(); ScheduleResponse response; using (var service = new BackupServiceClient()) { response = service.GetSchedule(GetCurrentTenantId()); if (response == null) { return(null); } } var schedule = new Schedule { StorageType = response.StorageType, StorageParams = response.StorageParams ?? new Dictionary <string, string>(), CronParams = new CronParams(response.Cron), BackupMail = response.BackupMail, BackupsStored = response.NumberOfBackupsStored, LastBackupTime = response.LastBackupTime }; if (response.StorageType == BackupStorageType.CustomCloud) { var amazonSettings = CoreContext.Configuration.GetSection <AmazonS3Settings>(); var consumer = ConsumerFactory.GetByName <DataStoreConsumer>("S3"); if (!consumer.IsSet) { consumer["acesskey"] = amazonSettings.AccessKeyId; consumer["secretaccesskey"] = amazonSettings.SecretAccessKey; consumer["bucket"] = amazonSettings.Bucket; consumer["region"] = amazonSettings.Region; } schedule.StorageType = BackupStorageType.ThirdPartyConsumer; schedule.StorageParams = consumer.AdditionalKeys.ToDictionary(r => r, r => consumer[r]); schedule.StorageParams.Add("module", "S3"); using (var service = new BackupServiceClient()) { service.CreateSchedule(new CreateScheduleRequest { TenantId = CoreContext.TenantManager.GetCurrentTenant().TenantId, BackupMail = schedule.BackupMail, Cron = schedule.CronParams.ToString(), NumberOfBackupsStored = schedule.BackupsStored, StorageType = schedule.StorageType, StorageParams = schedule.StorageParams }); } } else if (response.StorageType != BackupStorageType.ThirdPartyConsumer) { schedule.StorageParams["folderId"] = response.StorageBasePath; } return(schedule); }
public static ILoginProvider GetLoginProvider(string providerType, Signature signature, InstanceCrypto instanceCrypto) { return(providerType == ProviderConstants.OpenId ? new OpenIdLoginProvider(signature, instanceCrypto) : ConsumerFactory.GetByName(providerType) as ILoginProvider); }
public static ILoginProvider GetLoginProvider(string providerType) { return(providerType == ProviderConstants.OpenId ? new OpenIdLoginProvider() : ConsumerFactory.GetByName(providerType) as ILoginProvider); }
public static ILoginProvider GetLoginProvider(string providerType) { return(ConsumerFactory.GetByName(providerType) as ILoginProvider); }