Example #1
0
        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);
        }
Example #4
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
 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);
 }