ISettings replaced with ISettingsExt

This commit is contained in:
pavelbannov 2019-11-08 18:11:30 +03:00
parent 32781a87e2
commit 6ac10fac2f
33 changed files with 58 additions and 94 deletions

View File

@ -136,12 +136,7 @@ namespace ASC.Core.Data
var data = Serialize(settings);
var db = DbManager;
var def = (T)settings.GetDefault();
if (def is ISettingsExt)
{
def = (T)((ISettingsExt)settings).GetDefault(ServiceProvider);
}
var def = (T)settings.GetDefault(ServiceProvider);
var defaultData = Serialize(def);
@ -181,12 +176,7 @@ namespace ASC.Core.Data
{
var settingsInstance = Activator.CreateInstance<T>();
var key = settingsInstance.ID.ToString() + tenantId + userId;
var def = (T)settingsInstance.GetDefault();
if (def is ISettingsExt)
{
def = (T)((ISettingsExt)settingsInstance).GetDefault(ServiceProvider);
}
var def = (T)settingsInstance.GetDefault(ServiceProvider);
try
{

View File

@ -31,11 +31,6 @@ namespace ASC.Core.Common.Settings
public interface ISettings
{
Guid ID { get; }
ISettings GetDefault();
}
public interface ISettingsExt : ISettings
{
ISettings GetDefault(IServiceProvider serviceProvider);
}
}

View File

@ -42,7 +42,7 @@ namespace ASC.Core.Tenants
get { return new Guid("{02943039-F399-421E-A552-23D70651AEBD}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TenantAnalyticsSettings
{

View File

@ -49,7 +49,7 @@ namespace ASC.Core.Tenants
get { return Guid; }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TenantAuditSettings
{

View File

@ -45,7 +45,7 @@ namespace ASC.Core.Tenants
public int LifeTime { get; set; }
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return GetInstance();
}

View File

@ -47,7 +47,7 @@ namespace ASC.Web.Core.Users
[DataMember(Name = "IsDisableGettingStarted")]
public bool IsDisableGettingStarted { get; set; }
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new DisplayUserSettings
{

View File

@ -43,7 +43,7 @@ namespace ASC.Core.Tenants
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new PersonalQuotaSettings
{

View File

@ -36,7 +36,7 @@ namespace ASC.Web.Core.WhiteLabel
{
[Serializable]
[DataContract]
public class MailWhiteLabelSettings : ISettingsExt
public class MailWhiteLabelSettings : ISettings
{
[DataMember(Name = "FooterEnabled")]
public bool FooterEnabled { get; set; }
@ -64,15 +64,6 @@ namespace ASC.Web.Core.WhiteLabel
get { return new Guid("{C3602052-5BA2-452A-BD2A-ADD0FAF8EB88}"); }
}
public ISettings GetDefault()
{
return new MailWhiteLabelSettings
{
FooterEnabled = true,
FooterSocialEnabled = true
};
}
public ISettings GetDefault(IConfiguration configuration)
{
var mailWhiteLabelSettingsHelper = new MailWhiteLabelSettingsHelper(configuration);

View File

@ -79,7 +79,7 @@ namespace ASC.Data.Storage.Configuration
[DataMember(Name = "Props")]
public Dictionary<string, string> Props { get; set; }
public ISettings GetDefault() => new T();
public ISettings GetDefault(IServiceProvider serviceProvider) => new T();
public virtual Func<DataStoreConsumer, DataStoreConsumer> Switch { get { return d => d; } }
public ICacheNotify<DataStoreCacheItem> Cache { get; internal set; }

View File

@ -42,7 +42,7 @@ namespace ASC.IPSecurity
get { return new Guid("{2EDDDF64-F792-4498-A638-2E3E6EBB13C9}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new IPRestrictionsSettings { Enable = false };
}

View File

@ -92,6 +92,7 @@ namespace ASC.Api.Settings
public MessageService MessageService { get; }
public StudioNotifyService StudioNotifyService { get; }
public IWebHostEnvironment WebHostEnvironment { get; }
public IServiceProvider ServiceProvider { get; }
public UserManager UserManager { get; }
public TenantManager TenantManager { get; }
public TenantExtra TenantExtra { get; }
@ -169,10 +170,12 @@ namespace ASC.Api.Settings
StudioSmsNotificationSettingsHelper studioSmsNotificationSettingsHelper,
CoreSettings coreSettings,
StorageSettingsHelper storageSettingsHelper,
IWebHostEnvironment webHostEnvironment)
IWebHostEnvironment webHostEnvironment,
IServiceProvider serviceProvider)
{
Log = option.Get("ASC.Api");
WebHostEnvironment = webHostEnvironment;
ServiceProvider = serviceProvider;
MessageService = messageService;
StudioNotifyService = studioNotifyService;
ApiContext = apiContext;
@ -458,7 +461,7 @@ namespace ASC.Api.Settings
}
else if (productId == defaultPageSettings.DefaultProductID)
{
SettingsManager.Save(defaultPageSettings.GetDefault() as StudioDefaultPageSettings);
SettingsManager.Save(defaultPageSettings.GetDefault(ServiceProvider) as StudioDefaultPageSettings);
}
WebItemSecurity.SetSecurity(item.Key, item.Value, subjects);
@ -848,7 +851,7 @@ namespace ASC.Api.Settings
if (user.IsVisitor(UserManager) || user.IsOutsider(UserManager))
throw new NotSupportedException("Not available.");
TfaAppUserSettings.DisableForUser(SettingsManager, user.ID);
TfaAppUserSettings.DisableForUser(ServiceProvider, SettingsManager, user.ID);
MessageService.Send(MessageAction.UserDisconnectedTfaApp, MessageTarget.Create(user.ID), user.DisplayUserName(false, DisplayUserSettingsHelper));
if (isMe)
@ -1066,7 +1069,7 @@ namespace ASC.Api.Settings
if (!instance.IsDefault(CoreSettings) && !instance.IsLicensor)
{
result.Add(instance.GetDefault() as CompanyWhiteLabelSettings);
result.Add(instance.GetDefault(ServiceProvider) as CompanyWhiteLabelSettings);
}
return result;

View File

@ -42,7 +42,7 @@ namespace ASC.Web.Studio.Core
get { return new Guid("{73537E08-17F6-4706-BFDA-1414108AA7D2}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new CollaboratorSettings()
{

View File

@ -43,7 +43,7 @@ namespace ASC.Web.Studio.Core
get { return new Guid("{32E02E4C-925D-4391-BAA4-3B5D223A2104}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new CustomNavigationSettings { Items = new List<CustomNavigationItem>() };
}

View File

@ -42,7 +42,7 @@ namespace ASC.Web.Studio.Core
get { return new Guid("{85987929-1339-48EB-B06D-B9D097BDACF6}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new EmailActivationSettings { Show = true };
}

View File

@ -44,7 +44,7 @@ namespace ASC.Web.Studio.Core.SMS
get { return new Guid("{2802df61-af0d-40d4-abc5-a8506a5352ff}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new StudioSmsNotificationSettings { EnableSetting = false, };
}

View File

@ -47,7 +47,7 @@ namespace ASC.Web.Studio.Core
get { return new Guid("{48328C27-4C85-4987-BA0E-D6BB17356B10}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new StudioDefaultPageSettings { DefaultProductID = Guid.Empty };
}

View File

@ -49,7 +49,7 @@ namespace ASC.Web.Studio.UserControls.Management
[DataMember(Name = "LicenseAccept")]
public string LicenseAcceptSetting { get; set; }
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TariffSettings
{

View File

@ -39,7 +39,7 @@ namespace ASC.Web.Studio.Core.TFA
get { return new Guid("{822CA059-AA8F-4588-BEE3-6CD2AA920CDB}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TfaAppAuthSettings { EnableSetting = false, };
}

View File

@ -47,7 +47,7 @@ namespace ASC.Web.Studio.Core.TFA
get { return new Guid("{EAF10611-BE1E-4634-B7A1-57F913042F78}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TfaAppUserSettings
{
@ -91,9 +91,9 @@ namespace ASC.Web.Studio.Core.TFA
return settingsManager.LoadForUser<TfaAppUserSettings>(guid).CodesSetting.Any();
}
public static void DisableForUser(SettingsManager settingsManager, Guid guid)
public static void DisableForUser(IServiceProvider serviceProvider, SettingsManager settingsManager, Guid guid)
{
if (new TfaAppUserSettings().GetDefault() is TfaAppUserSettings defaultSettings)
if (new TfaAppUserSettings().GetDefault(serviceProvider) is TfaAppUserSettings defaultSettings)
{
settingsManager.SaveForUser(defaultSettings, guid);
}

View File

@ -42,7 +42,7 @@ namespace ASC.Web.Studio.Core
get { return new Guid("{27909339-B4D4-466F-8F40-A64C9D2FC041}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TipsSettings { Show = true };
}

View File

@ -53,7 +53,7 @@ namespace ASC.Web.Core.Users
[DataMember(Name = "ItemId")]
public string ItemID { get; set; }
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new PeopleNamesSettings { ItemID = PeopleNamesItem.DefaultID };
}

View File

@ -46,7 +46,7 @@ namespace ASC.Web.Core.Users
[DataMember(Name = "IsNewUser")]
public bool IsNewUser { get; set; }
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new UserHelpTourSettings
{

View File

@ -202,6 +202,7 @@ namespace ASC.Web.Core.Users
public StorageFactory StorageFactory { get; }
public UserPhotoManagerCache UserPhotoManagerCache { get; }
public SettingsManager SettingsManager { get; }
public IServiceProvider ServiceProvider { get; }
public ILog Log { get; }
private Tenant tenant;
@ -218,7 +219,8 @@ namespace ASC.Web.Core.Users
UserPhotoManagerCache userPhotoManagerCache,
IOptionsMonitor<ILog> options,
WorkerQueueOptionsManager<ResizeWorkerItem> optionsQueue,
SettingsManager settingsManager)
SettingsManager settingsManager,
IServiceProvider serviceProvider)
{
ResizeQueue = optionsQueue.Value;
UserManager = userManager;
@ -227,6 +229,7 @@ namespace ASC.Web.Core.Users
StorageFactory = storageFactory;
UserPhotoManagerCache = userPhotoManagerCache;
SettingsManager = settingsManager;
ServiceProvider = serviceProvider;
Log = options.Get("ASC.Web.Photo");
}
@ -505,7 +508,7 @@ namespace ASC.Web.Core.Users
}
public void ResetThumbnailSettings(Guid userId)
{
var thumbSettings = new UserPhotoThumbnailSettings().GetDefault() as UserPhotoThumbnailSettings;
var thumbSettings = new UserPhotoThumbnailSettings().GetDefault(ServiceProvider) as UserPhotoThumbnailSettings;
SettingsManager.SaveForUser(thumbSettings, userId);
}

View File

@ -65,7 +65,7 @@ namespace ASC.Web.Core.Users
[DataMember(Name = "IsDefault")]
public bool IsDefault { get; private set; }
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new UserPhotoThumbnailSettings
{

View File

@ -28,10 +28,10 @@ using System;
using System.IO;
using System.Runtime.Serialization;
using ASC.Core.Common.Settings;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Hosting;
namespace ASC.Web.Core.Utility
{
@ -49,7 +49,7 @@ namespace ASC.Web.Core.Utility
[DataMember(Name = "FirstRequest")]
public bool FirstRequest { get; set; }
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new ColorThemesSettings
{
@ -67,31 +67,28 @@ namespace ASC.Web.Core.Utility
public class ColorThemesSettingsHelper
{
public SettingsManager SettingsManager { get; }
public IUrlHelper UrlHelper { get; }
public IWebHostEnvironment WebHostEnvironment { get; }
public IHostEnvironment HostEnvironment { get; }
public ColorThemesSettingsHelper(
SettingsManager settingsManager,
IUrlHelper urlHelper,
IWebHostEnvironment webHostEnvironment)
IHostEnvironment hostEnvironment)
{
SettingsManager = settingsManager;
UrlHelper = urlHelper;
WebHostEnvironment = webHostEnvironment;
HostEnvironment = hostEnvironment;
}
public string GetThemeFolderName(string path)
public string GetThemeFolderName(IUrlHelper urlHelper, string path)
{
var folderName = GetColorThemesSettings();
var resolvedPath = path.ToLower().Replace(ColorThemesSettings.ThemeFolderTemplate, folderName);
//TODO check
if (!UrlHelper.IsLocalUrl(resolvedPath))
resolvedPath = UrlHelper.Action(resolvedPath);
if (!urlHelper.IsLocalUrl(resolvedPath))
resolvedPath = urlHelper.Action(resolvedPath);
try
{
var filePath = Path.Combine(WebHostEnvironment.ContentRootPath, resolvedPath);
var filePath = Path.Combine(HostEnvironment.ContentRootPath, resolvedPath);
if (!File.Exists(filePath))
throw new FileNotFoundException("", path);
}
@ -99,10 +96,10 @@ namespace ASC.Web.Core.Utility
{
resolvedPath = path.ToLower().Replace(ColorThemesSettings.ThemeFolderTemplate, "default");
if (!UrlHelper.IsLocalUrl(resolvedPath))
resolvedPath = UrlHelper.Action(resolvedPath);
if (!urlHelper.IsLocalUrl(resolvedPath))
resolvedPath = urlHelper.Action(resolvedPath);
var filePath = Path.Combine(WebHostEnvironment.ContentRootPath, resolvedPath);
var filePath = Path.Combine(HostEnvironment.ContentRootPath, resolvedPath);
if (!File.Exists(filePath))
throw new FileNotFoundException("", path);
@ -133,7 +130,7 @@ namespace ASC.Web.Core.Utility
try
{
var filePath = Path.Combine(WebHostEnvironment.ContentRootPath, resolvedPath);
var filePath = Path.Combine(HostEnvironment.ContentRootPath, resolvedPath);
if (Directory.Exists(filePath))
{
SettingsManager.Save(settings);

View File

@ -34,7 +34,7 @@ namespace ASC.Web.Core.Utility
{
[Serializable]
[DataContract]
public sealed class PasswordSettings : ISettingsExt
public sealed class PasswordSettings : ISettings
{
public Guid ID
{
@ -67,10 +67,6 @@ namespace ASC.Web.Core.Utility
[DataMember]
public bool SpecSymbols { get; set; }
public ISettings GetDefault()
{
return new PasswordSettings { MinLength = 6, UpperCase = false, Digits = false, SpecSymbols = false };
}
public ISettings GetDefault(IConfiguration configuration)
{
var def = new PasswordSettings { MinLength = 6, UpperCase = false, Digits = false, SpecSymbols = false };

View File

@ -45,7 +45,7 @@ namespace ASC.Web.Core.Utility.Settings
get { return new Guid("{0CB4C871-0040-45AB-AE79-4CC292B91EF1}"); }
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TenantAccessSettings { Anyone = false, RegisterUsersImmediately = false };
}

View File

@ -34,7 +34,7 @@ namespace ASC.Web.Core.Utility.Settings
{
[Serializable]
[DataContract]
public class WebItemSettings : ISettingsExt
public class WebItemSettings : ISettings
{
public Guid ID
{
@ -49,11 +49,6 @@ namespace ASC.Web.Core.Utility.Settings
SettingsCollection = new List<WebItemOption>();
}
public ISettings GetDefault()
{
return new WebItemSettings();
}
public ISettings GetDefault(IServiceProvider serviceProvider)
{
var settings = new WebItemSettings();

View File

@ -46,7 +46,7 @@ namespace ASC.Web.Core.Utility.Settings
}
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new WizardSettings
{

View File

@ -36,7 +36,7 @@ namespace ASC.Web.Core.WhiteLabel
{
[Serializable]
[DataContract]
public class AdditionalWhiteLabelSettings : ISettingsExt
public class AdditionalWhiteLabelSettings : ISettings
{
[DataMember(Name = "StartDocsEnabled")]
public bool StartDocsEnabled { get; set; }

View File

@ -35,7 +35,7 @@ namespace ASC.Web.Core.WhiteLabel
{
[Serializable]
[DataContract]
public class CompanyWhiteLabelSettings : ISettingsExt
public class CompanyWhiteLabelSettings : ISettings
{
[DataMember(Name = "CompanyName")]
public string CompanyName { get; set; }
@ -76,11 +76,6 @@ namespace ASC.Web.Core.WhiteLabel
private static CompanyWhiteLabelSettings _default;
public ISettings GetDefault()
{
return new CompanyWhiteLabelSettings();
}
public ISettings GetDefault(IServiceProvider serviceProvider)
{
if (_default != null) return _default;

View File

@ -51,7 +51,7 @@ namespace ASC.Web.Core.WhiteLabel
[DataMember(Name = "Default")]
internal bool _isDefault { get; set; }
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TenantInfoSettings()
{
@ -178,7 +178,6 @@ namespace ASC.Web.Core.WhiteLabel
.AddWebImageSupplierService()
.AddStorageFactoryService()
.AddTenantManagerService()
.AddTenantLogoManagerService()
.AddSettingsManagerService();
}
}

View File

@ -108,7 +108,7 @@ namespace ASC.Web.Core.WhiteLabel
#region ISettings Members
public ISettings GetDefault()
public ISettings GetDefault(IServiceProvider serviceProvider)
{
return new TenantWhiteLabelSettings
{