From dd012db5949410972aa3ee6032af17c28218eb8f Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Thu, 19 Mar 2020 19:06:05 +0100 Subject: [PATCH] Introduced constants for config --- .../Models/ActiveDirectorySettings.cs | 4 +- .../Models/ConnectionStrings.cs | 2 +- .../Models/ContentSettings.cs | 28 ++++++----- .../Models/CoreDebugSettings.cs | 6 ++- .../Models/ExceptionFilterSettings.cs | 4 +- .../Models/GlobalSettings.cs | 50 ++++++++++--------- .../Models/HealthChecksSettingsSettings.cs | 6 ++- .../Models/HostingSettings.cs | 8 +-- .../Models/ImagingSettings.cs | 18 ++++--- .../Models/IndexCreatorSettings.cs | 4 +- .../Models/KeepAliveSettings.cs | 6 ++- .../Models/LoggingSettings.cs | 6 ++- .../Models/MachineKeyConfig.cs | 2 +- .../MemberPasswordConfigurationSettings.cs | 18 ++++--- .../Models/ModelsBuilderConfig.cs | 18 ++++--- .../Models/NuCacheSettings.cs | 4 +- .../Models/RequestHandlerSettings.cs | 2 +- .../Models/RuntimeSettings.cs | 6 ++- .../Models/SecuritySettings.cs | 14 +++--- .../Models/TourSettings.cs | 4 +- .../Models/TypeFinderSettings.cs | 4 +- .../UserPasswordConfigurationSettings.cs | 18 ++++--- .../Models/WebRoutingSettings.cs | 18 ++++--- src/Umbraco.Core/Constants-Configuration.cs | 2 + 24 files changed, 151 insertions(+), 101 deletions(-) diff --git a/src/Umbraco.Configuration/Models/ActiveDirectorySettings.cs b/src/Umbraco.Configuration/Models/ActiveDirectorySettings.cs index 6581bbdd72..015fb17a8e 100644 --- a/src/Umbraco.Configuration/Models/ActiveDirectorySettings.cs +++ b/src/Umbraco.Configuration/Models/ActiveDirectorySettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class ActiveDirectorySettings : IActiveDirectorySettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "ActiveDirectory:"; private readonly IConfiguration _configuration; public ActiveDirectorySettings(IConfiguration configuration) @@ -12,6 +14,6 @@ namespace Umbraco.Configuration.Models _configuration = configuration; } - public string ActiveDirectoryDomain => _configuration.GetValue("Umbraco:CMS:ActiveDirectory:Domain"); + public string ActiveDirectoryDomain => _configuration.GetValue(Prefix+"Domain"); } } diff --git a/src/Umbraco.Configuration/Models/ConnectionStrings.cs b/src/Umbraco.Configuration/Models/ConnectionStrings.cs index f29ce4ea8f..9fc546a88f 100644 --- a/src/Umbraco.Configuration/Models/ConnectionStrings.cs +++ b/src/Umbraco.Configuration/Models/ConnectionStrings.cs @@ -6,7 +6,7 @@ using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { - public class ConnectionStrings : IConnectionStrings + internal class ConnectionStrings : IConnectionStrings { private readonly IConfiguration _configuration; diff --git a/src/Umbraco.Configuration/Models/ContentSettings.cs b/src/Umbraco.Configuration/Models/ContentSettings.cs index b109c2e45e..5bc31814b7 100644 --- a/src/Umbraco.Configuration/Models/ContentSettings.cs +++ b/src/Umbraco.Configuration/Models/ContentSettings.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Macros; @@ -9,6 +10,9 @@ namespace Umbraco.Configuration.Models { internal class ContentSettings : IContentSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Content:"; + private const string NotificationsPrefix = Prefix + "Notifications:"; + private const string ImagingPrefix = Prefix + "Imaging:"; private const string DefaultPreviewBadge = @"
Preview modeClick to end
"; @@ -28,44 +32,44 @@ namespace Umbraco.Configuration.Models } public string NotificationEmailAddress => - _configuration.GetValue("Umbraco:CMS:Content:Notifications:Email"); + _configuration.GetValue(NotificationsPrefix+"Email"); public bool DisableHtmlEmail => - _configuration.GetValue("Umbraco:CMS:Content:Notifications:DisableHtmlEmail", false); + _configuration.GetValue(NotificationsPrefix+"DisableHtmlEmail", false); public IEnumerable ImageFileTypes => _configuration.GetValue( - "Umbraco:CMS:Content:Imaging:ImageFileTypes", new[] { "jpeg", "jpg", "gif", "bmp", "png", "tiff", "tif" }); + ImagingPrefix+"ImageFileTypes", new[] { "jpeg", "jpg", "gif", "bmp", "png", "tiff", "tif" }); public IEnumerable ImageAutoFillProperties => - _configuration.GetValue("Umbraco:CMS:Core:Content:Imaging:autoFillImageProperties", + _configuration.GetValue(ImagingPrefix+"AutoFillImageProperties", DefaultImagingAutoFillUploadField); public bool ResolveUrlsFromTextString => - _configuration.GetValue("Umbraco:CMS:Content:ResolveUrlsFromTextString", false); + _configuration.GetValue(Prefix+"ResolveUrlsFromTextString", false); public IEnumerable Error404Collection => _configuration - .GetSection("Umbraco:CMS:Content:Errors:Error404") + .GetSection(Prefix+"Errors:Error404") .GetChildren() .Select(x => new ContentErrorPage(x)); - public string PreviewBadge => _configuration.GetValue("Umbraco:CMS:Content:PreviewBadge", DefaultPreviewBadge); + public string PreviewBadge => _configuration.GetValue(Prefix+"PreviewBadge", DefaultPreviewBadge); public MacroErrorBehaviour MacroErrorBehaviour => - _configuration.GetValue("Umbraco:CMS:Content:MacroErrors", MacroErrorBehaviour.Inline); + _configuration.GetValue(Prefix+"MacroErrors", MacroErrorBehaviour.Inline); public IEnumerable DisallowedUploadFiles => _configuration.GetValue( - "Umbraco:CMS:Content:DisallowedUploadFiles", + Prefix+"DisallowedUploadFiles", new[] { "ashx", "aspx", "ascx", "config", "cshtml", "vbhtml", "asmx", "air", "axd" }); public IEnumerable AllowedUploadFiles => - _configuration.GetValue("Umbraco:CMS:Content:AllowedUploadFiles", Array.Empty()); + _configuration.GetValue(Prefix+"AllowedUploadFiles", Array.Empty()); public bool ShowDeprecatedPropertyEditors => - _configuration.GetValue("Umbraco:CMS:Content:ShowDeprecatedPropertyEditors", false); + _configuration.GetValue(Prefix+"ShowDeprecatedPropertyEditors", false); public string LoginBackgroundImage => - _configuration.GetValue("Umbraco:CMS:Content:LoginBackgroundImage", string.Empty); + _configuration.GetValue(Prefix+"LoginBackgroundImage", string.Empty); private class ContentErrorPage : IContentErrorPage { diff --git a/src/Umbraco.Configuration/Models/CoreDebugSettings.cs b/src/Umbraco.Configuration/Models/CoreDebugSettings.cs index 687bdc17d3..6d6c0eaf0d 100644 --- a/src/Umbraco.Configuration/Models/CoreDebugSettings.cs +++ b/src/Umbraco.Configuration/Models/CoreDebugSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class CoreDebugSettings : ICoreDebugSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Core:Debug:"; private readonly IConfiguration _configuration; public CoreDebugSettings(IConfiguration configuration) @@ -13,9 +15,9 @@ namespace Umbraco.Configuration.Models } public bool LogUncompletedScopes => - _configuration.GetValue("Umbraco:CMS:Core:Debug:LogUncompletedScopes", false); + _configuration.GetValue(Prefix+"LogUncompletedScopes", false); public bool DumpOnTimeoutThreadAbort => - _configuration.GetValue("Umbraco:CMS:Core:Debug:DumpOnTimeoutThreadAbort", false); + _configuration.GetValue(Prefix+"DumpOnTimeoutThreadAbort", false); } } diff --git a/src/Umbraco.Configuration/Models/ExceptionFilterSettings.cs b/src/Umbraco.Configuration/Models/ExceptionFilterSettings.cs index fdc01250ed..581daf9f40 100644 --- a/src/Umbraco.Configuration/Models/ExceptionFilterSettings.cs +++ b/src/Umbraco.Configuration/Models/ExceptionFilterSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class ExceptionFilterSettings : IExceptionFilterSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "ExceptionFilter:"; private readonly IConfiguration _configuration; public ExceptionFilterSettings(IConfiguration configuration) @@ -12,6 +14,6 @@ namespace Umbraco.Configuration.Models _configuration = configuration; } - public bool Disabled => _configuration.GetValue("Umbraco:CMS:ExceptionFilter:Disabled", false); + public bool Disabled => _configuration.GetValue(Prefix+"Disabled", false); } } diff --git a/src/Umbraco.Configuration/Models/GlobalSettings.cs b/src/Umbraco.Configuration/Models/GlobalSettings.cs index 4b0415cd67..4dc764a974 100644 --- a/src/Umbraco.Configuration/Models/GlobalSettings.cs +++ b/src/Umbraco.Configuration/Models/GlobalSettings.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models @@ -9,8 +10,10 @@ namespace Umbraco.Configuration.Models /// The GlobalSettings Class contains general settings information for the entire Umbraco instance based on information /// from web.config appsettings /// - public class GlobalSettings : IGlobalSettings + internal class GlobalSettings : IGlobalSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Global:"; + internal const string StaticReservedPaths = "~/app_plugins/,~/install/,~/mini-profiler-resources/,"; //must end with a comma! @@ -24,56 +27,57 @@ namespace Umbraco.Configuration.Models _configuration = configuration; } - public string ReservedUrls => _configuration.GetValue("Umbraco:CMS:Global:ReservedUrls", StaticReservedUrls); - public string ReservedPaths => _configuration.GetValue("Umbraco:CMS:Global:ReservedPaths", StaticReservedPaths); + public string ReservedUrls => _configuration.GetValue(Prefix + "ReservedUrls", StaticReservedUrls); + public string ReservedPaths => _configuration.GetValue(Prefix + "ReservedPaths", StaticReservedPaths); - public string Path => _configuration.GetValue("Umbraco:CMS:Global:Path"); + public string Path => _configuration.GetValue(Prefix + "Path"); // TODO: https://github.com/umbraco/Umbraco-CMS/issues/4238 - stop having version in web.config appSettings public string ConfigurationStatus { - get => _configuration.GetValue("Umbraco:CMS:Global:ConfigurationStatus"); + get => _configuration.GetValue(Prefix + "ConfigurationStatus"); set => throw new NotImplementedException("We should remove this and only use the value from database"); } - public int TimeOutInMinutes => _configuration.GetValue("Umbraco:CMS:Global:TimeOutInMinutes", 20); - public string DefaultUILanguage => _configuration.GetValue("Umbraco:CMS:Global:TimeOutInMinutes", "en-US"); + public int TimeOutInMinutes => _configuration.GetValue(Prefix + "TimeOutInMinutes", 20); + public string DefaultUILanguage => _configuration.GetValue(Prefix + "TimeOutInMinutes", "en-US"); public bool HideTopLevelNodeFromPath => - _configuration.GetValue("Umbraco:CMS:Global:HideTopLevelNodeFromPath", false); + _configuration.GetValue(Prefix + "HideTopLevelNodeFromPath", false); - public bool UseHttps => _configuration.GetValue("Umbraco:CMS:Global:UseHttps", false); - public int VersionCheckPeriod => _configuration.GetValue("Umbraco:CMS:Global:VersionCheckPeriod", 7); - public string UmbracoPath => _configuration.GetValue("Umbraco:CMS:Global:UmbracoPath", "~/umbraco"); - public string UmbracoCssPath => _configuration.GetValue("Umbraco:CMS:Global:UmbracoCssPath", "~/css"); + public bool UseHttps => _configuration.GetValue(Prefix + "UseHttps", false); + public int VersionCheckPeriod => _configuration.GetValue(Prefix + "VersionCheckPeriod", 7); + public string UmbracoPath => _configuration.GetValue(Prefix + "UmbracoPath", "~/umbraco"); + public string UmbracoCssPath => _configuration.GetValue(Prefix + "UmbracoCssPath", "~/css"); public string UmbracoScriptsPath => - _configuration.GetValue("Umbraco:CMS:Global:UmbracoScriptsPath", "~/scripts"); + _configuration.GetValue(Prefix + "UmbracoScriptsPath", "~/scripts"); - public string UmbracoMediaPath => _configuration.GetValue("Umbraco:CMS:Global:UmbracoMediaPath", "~/media"); + public string UmbracoMediaPath => _configuration.GetValue(Prefix + "UmbracoMediaPath", "~/media"); public bool InstallMissingDatabase => - _configuration.GetValue("Umbraco:CMS:Global:InstallMissingDatabase", false); + _configuration.GetValue(Prefix + "InstallMissingDatabase", false); - public bool InstallEmptyDatabase => _configuration.GetValue("Umbraco:CMS:Global:InstallEmptyDatabase", false); + public bool InstallEmptyDatabase => _configuration.GetValue(Prefix + "InstallEmptyDatabase", false); public bool DisableElectionForSingleServer => - _configuration.GetValue("Umbraco:CMS:Global:DisableElectionForSingleServer", false); + _configuration.GetValue(Prefix + "DisableElectionForSingleServer", false); - public string RegisterType => _configuration.GetValue("Umbraco:CMS:Global:RegisterType", string.Empty); + public string RegisterType => _configuration.GetValue(Prefix + "RegisterType", string.Empty); public string DatabaseFactoryServerVersion => - _configuration.GetValue("Umbraco:CMS:Global:DatabaseFactoryServerVersion", string.Empty); + _configuration.GetValue(Prefix + "DatabaseFactoryServerVersion", string.Empty); - public string MainDomLock => _configuration.GetValue("Umbraco:CMS:Global:MainDomLock", string.Empty); + public string MainDomLock => _configuration.GetValue(Prefix + "MainDomLock", string.Empty); public string NoNodesViewPath => - _configuration.GetValue("Umbraco:CMS:Global:NoNodesViewPath", "~/config/splashes/NoNodes.cshtml"); + _configuration.GetValue(Prefix + "NoNodesViewPath", "~/config/splashes/NoNodes.cshtml"); public bool IsSmtpServerConfigured => - _configuration.GetSection("Umbraco:CMS:Smtp")?.GetChildren().Any() ?? false; + _configuration.GetSection(Constants.Configuration.ConfigPrefix + "Smtp")?.GetChildren().Any() ?? false; - public ISmtpSettings SmtpSettings => new SmtpSettingsImpl(_configuration.GetSection("Umbraco:CMS:Smtp")); + public ISmtpSettings SmtpSettings => + new SmtpSettingsImpl(_configuration.GetSection(Constants.Configuration.ConfigPrefix + "Smtp")); private class SmtpSettingsImpl : ISmtpSettings { diff --git a/src/Umbraco.Configuration/Models/HealthChecksSettingsSettings.cs b/src/Umbraco.Configuration/Models/HealthChecksSettingsSettings.cs index d815021109..1d73051ec8 100644 --- a/src/Umbraco.Configuration/Models/HealthChecksSettingsSettings.cs +++ b/src/Umbraco.Configuration/Models/HealthChecksSettingsSettings.cs @@ -2,12 +2,14 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration.HealthChecks; namespace Umbraco.Configuration.Models { internal class HealthChecksSettings : IHealthChecksSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "HealthChecks:"; private readonly IConfiguration _configuration; public HealthChecksSettings(IConfiguration configuration) @@ -16,7 +18,7 @@ namespace Umbraco.Configuration.Models } public IEnumerable DisabledChecks => _configuration - .GetSection("Umbraco:CMS:HealthChecks:DisabledChecks") + .GetSection(Prefix+"DisabledChecks") .GetChildren() .Select( x => new DisabledHealthCheck @@ -28,7 +30,7 @@ namespace Umbraco.Configuration.Models public IHealthCheckNotificationSettings NotificationSettings => new HealthCheckNotificationSettings( - _configuration.GetSection("Umbraco:CMS:HealthChecks:NotificationSettings")); + _configuration.GetSection(Prefix+"NotificationSettings")); private class DisabledHealthCheck : IDisabledHealthCheck { diff --git a/src/Umbraco.Configuration/Models/HostingSettings.cs b/src/Umbraco.Configuration/Models/HostingSettings.cs index 765cc0fbc6..4a156cee6a 100644 --- a/src/Umbraco.Configuration/Models/HostingSettings.cs +++ b/src/Umbraco.Configuration/Models/HostingSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { - public class HostingSettings : IHostingSettings + internal class HostingSettings : IHostingSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Hosting:"; private readonly IConfiguration _configuration; public HostingSettings(IConfiguration configuration) @@ -14,12 +16,12 @@ namespace Umbraco.Configuration.Models /// public LocalTempStorage LocalTempStorageLocation => - _configuration.GetValue("Umbraco:CMS:Hosting:LocalTempStorage", LocalTempStorage.Default); + _configuration.GetValue(Prefix+"LocalTempStorage", LocalTempStorage.Default); /// /// Gets a value indicating whether umbraco is running in [debug mode]. /// /// true if [debug mode]; otherwise, false. - public bool DebugMode => _configuration.GetValue("Umbraco:CMS:Hosting:Debug", false); + public bool DebugMode => _configuration.GetValue(Prefix+":Debug", false); } } diff --git a/src/Umbraco.Configuration/Models/ImagingSettings.cs b/src/Umbraco.Configuration/Models/ImagingSettings.cs index 6ec0924eb6..4a9501b2ba 100644 --- a/src/Umbraco.Configuration/Models/ImagingSettings.cs +++ b/src/Umbraco.Configuration/Models/ImagingSettings.cs @@ -1,10 +1,14 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { - public class ImagingSettings : IImagingSettings + internal class ImagingSettings : IImagingSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Imaging:"; + private const string CachePrefix = Prefix + "Cache:"; + private const string ResizePrefix = Prefix + "Resize:"; private readonly IConfiguration _configuration; public ImagingSettings(IConfiguration configuration) @@ -12,11 +16,11 @@ namespace Umbraco.Configuration.Models _configuration = configuration; } - public int MaxBrowserCacheDays => _configuration.GetValue("Umbraco:CMS:Imaging:Cache:MaxBrowserCacheDays", 7); - public int MaxCacheDays => _configuration.GetValue("Umbraco:CMS:Imaging:Cache:MaxCacheDays", 365); - public uint CachedNameLength => _configuration.GetValue("Umbraco:CMS:Imaging:Cache:CachedNameLength", (uint) 8); - public int MaxResizeWidth => _configuration.GetValue("Umbraco:CMS:Imaging:Resize:MaxWidth", 5000); - public int MaxResizeHeight => _configuration.GetValue("Umbraco:CMS:Imaging:Resize:MaxHeight", 5000); - public string CacheFolder => _configuration.GetValue("Umbraco:CMS:Imaging:Cache:Folder", "../App_Data/Cache"); + public int MaxBrowserCacheDays => _configuration.GetValue(CachePrefix + "MaxBrowserCacheDays", 7); + public int MaxCacheDays => _configuration.GetValue(CachePrefix + "MaxCacheDays", 365); + public uint CachedNameLength => _configuration.GetValue(CachePrefix + "CachedNameLength", (uint) 8); + public string CacheFolder => _configuration.GetValue(CachePrefix + "Folder", "../App_Data/Cache"); + public int MaxResizeWidth => _configuration.GetValue(ResizePrefix + "MaxWidth", 5000); + public int MaxResizeHeight => _configuration.GetValue(ResizePrefix + "MaxHeight", 5000); } } diff --git a/src/Umbraco.Configuration/Models/IndexCreatorSettings.cs b/src/Umbraco.Configuration/Models/IndexCreatorSettings.cs index b483315bf1..b4bb000552 100644 --- a/src/Umbraco.Configuration/Models/IndexCreatorSettings.cs +++ b/src/Umbraco.Configuration/Models/IndexCreatorSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class IndexCreatorSettings : IIndexCreatorSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Examine:"; private readonly IConfiguration _configuration; public IndexCreatorSettings(IConfiguration configuration) @@ -13,6 +15,6 @@ namespace Umbraco.Configuration.Models } public string LuceneDirectoryFactory => - _configuration.GetValue("Umbraco:CMS:Examine:LuceneDirectoryFactory"); + _configuration.GetValue(Prefix + "LuceneDirectoryFactory"); } } diff --git a/src/Umbraco.Configuration/Models/KeepAliveSettings.cs b/src/Umbraco.Configuration/Models/KeepAliveSettings.cs index e080ecd360..04194e1a3c 100644 --- a/src/Umbraco.Configuration/Models/KeepAliveSettings.cs +++ b/src/Umbraco.Configuration/Models/KeepAliveSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration.UmbracoSettings; namespace Umbraco.Configuration.Models { internal class KeepAliveSettings : IKeepAliveSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "KeepAlive:"; private readonly IConfiguration _configuration; public KeepAliveSettings(IConfiguration configuration) @@ -13,9 +15,9 @@ namespace Umbraco.Configuration.Models } public bool DisableKeepAliveTask => - _configuration.GetValue("Umbraco:CMS:KeepAlive:DisableKeepAliveTask", false); + _configuration.GetValue(Prefix + "DisableKeepAliveTask", false); - public string KeepAlivePingUrl => _configuration.GetValue("Umbraco:CMS:KeepAlive:KeepAlivePingUrl", + public string KeepAlivePingUrl => _configuration.GetValue(Prefix + "KeepAlivePingUrl", "{umbracoApplicationUrl}/api/keepalive/ping"); } } diff --git a/src/Umbraco.Configuration/Models/LoggingSettings.cs b/src/Umbraco.Configuration/Models/LoggingSettings.cs index 60110817d9..b05fe03875 100644 --- a/src/Umbraco.Configuration/Models/LoggingSettings.cs +++ b/src/Umbraco.Configuration/Models/LoggingSettings.cs @@ -1,15 +1,19 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration.UmbracoSettings; namespace Umbraco.Configuration.Models { internal class LoggingSettings : ILoggingSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Logging:"; private readonly IConfiguration _configuration; + public LoggingSettings(IConfiguration configuration) { _configuration = configuration; } - public int MaxLogAge => _configuration.GetValue("Umbraco:CMS:Logging:MaxLogAge", -1); + + public int MaxLogAge => _configuration.GetValue(Prefix + "MaxLogAge", -1); } } diff --git a/src/Umbraco.Configuration/Models/MachineKeyConfig.cs b/src/Umbraco.Configuration/Models/MachineKeyConfig.cs index a22352dd22..621827d5a3 100644 --- a/src/Umbraco.Configuration/Models/MachineKeyConfig.cs +++ b/src/Umbraco.Configuration/Models/MachineKeyConfig.cs @@ -4,7 +4,7 @@ using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { - public class MachineKeyConfig : IMachineKeyConfig + internal class MachineKeyConfig : IMachineKeyConfig { private readonly IConfiguration _configuration; diff --git a/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs b/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs index e97013d3d5..62066e2846 100644 --- a/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs +++ b/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class MemberPasswordConfigurationSettings : IMemberPasswordConfiguration { + private const string Prefix = Constants.Configuration.ConfigSecurityPrefix + "MemberPassword:"; private readonly IConfiguration _configuration; public MemberPasswordConfigurationSettings(IConfiguration configuration) @@ -13,27 +15,27 @@ namespace Umbraco.Configuration.Models } public int RequiredLength => - _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequiredLength", 10); + _configuration.GetValue(Prefix + "RequiredLength", 10); public bool RequireNonLetterOrDigit => - _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireNonLetterOrDigit", false); + _configuration.GetValue(Prefix + "RequireNonLetterOrDigit", false); public bool RequireDigit => - _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireDigit", false); + _configuration.GetValue(Prefix + "RequireDigit", false); public bool RequireLowercase => - _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireLowercase", false); + _configuration.GetValue(Prefix + "RequireLowercase", false); public bool RequireUppercase => - _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireUppercase", false); + _configuration.GetValue(Prefix + "RequireUppercase", false); public bool UseLegacyEncoding => - _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:UseLegacyEncoding", false); + _configuration.GetValue(Prefix + "UseLegacyEncoding", false); public string HashAlgorithmType => - _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:HashAlgorithmType", "HMACSHA256"); + _configuration.GetValue(Prefix + "HashAlgorithmType", "HMACSHA256"); public int MaxFailedAccessAttemptsBeforeLockout => - _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:MaxFailedAccessAttemptsBeforeLockout", 5); + _configuration.GetValue(Prefix + "MaxFailedAccessAttemptsBeforeLockout", 5); } } diff --git a/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs b/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs index 594a317854..d111dbba70 100644 --- a/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs +++ b/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models @@ -8,6 +9,7 @@ namespace Umbraco.Configuration.Models /// internal class ModelsBuilderConfig : IModelsBuilderConfig { + private const string Prefix = Constants.Configuration.ConfigModelsBuilderPrefix; private readonly IConfiguration _configuration; /// @@ -27,25 +29,25 @@ namespace Umbraco.Configuration.Models /// If this is false then absolutely nothing happens. /// Default value is false which means that unless we have this setting, nothing happens. /// - public bool Enable => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:Enable", false); + public bool Enable => _configuration.GetValue(Prefix+"Enable", false); /// /// Gets the models mode. /// public ModelsMode ModelsMode => - _configuration.GetValue("Umbraco:CMS:ModelsBuilder:ModelsMode", ModelsMode.Nothing); + _configuration.GetValue(Prefix+"ModelsMode", ModelsMode.Nothing); /// /// Gets the models namespace. /// /// That value could be overriden by other (attribute in user's code...). Return default if no value was supplied. - public string ModelsNamespace => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:ModelsNamespace"); + public string ModelsNamespace => _configuration.GetValue(Prefix+"ModelsNamespace"); /// /// Gets a value indicating whether we should enable the models factory. /// /// Default value is true because no factory is enabled by default in Umbraco. - public bool EnableFactory => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:EnableFactory", true); + public bool EnableFactory => _configuration.GetValue(Prefix+"EnableFactory", true); /// /// Gets a value indicating whether we should flag out-of-date models. @@ -56,14 +58,14 @@ namespace Umbraco.Configuration.Models /// generated through the dashboard, the files is cleared. Default value is false. /// public bool FlagOutOfDateModels => - _configuration.GetValue("Umbraco:CMS:ModelsBuilder:FlagOutOfDateModels", false) && !ModelsMode.IsLive(); + _configuration.GetValue(Prefix+"FlagOutOfDateModels", false) && !ModelsMode.IsLive(); /// /// Gets the models directory. /// /// Default is ~/App_Data/Models but that can be changed. public string ModelsDirectory => - _configuration.GetValue("Umbraco:CMS:ModelsBuilder:ModelsDirectory", "~/App_Data/Models"); + _configuration.GetValue(Prefix+"ModelsDirectory", "~/App_Data/Models"); /// /// Gets a value indicating whether to accept an unsafe value for ModelsDirectory. @@ -73,12 +75,12 @@ namespace Umbraco.Configuration.Models /// of the website root. /// public bool AcceptUnsafeModelsDirectory => - _configuration.GetValue("Umbraco:CMS:ModelsBuilder:AcceptUnsafeModelsDirectory", false); + _configuration.GetValue(Prefix+"AcceptUnsafeModelsDirectory", false); /// /// Gets a value indicating the debug log level. /// /// 0 means minimal (safe on live site), anything else means more and more details (maybe not safe). - public int DebugLevel => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:DebugLevel", 0); + public int DebugLevel => _configuration.GetValue(Prefix+"DebugLevel", 0); } } diff --git a/src/Umbraco.Configuration/Models/NuCacheSettings.cs b/src/Umbraco.Configuration/Models/NuCacheSettings.cs index f7a3c59c68..51b8b1fe08 100644 --- a/src/Umbraco.Configuration/Models/NuCacheSettings.cs +++ b/src/Umbraco.Configuration/Models/NuCacheSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class NuCacheSettings : INuCacheSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "NuCache:"; private readonly IConfiguration _configuration; public NuCacheSettings(IConfiguration configuration) @@ -12,6 +14,6 @@ namespace Umbraco.Configuration.Models _configuration = configuration; } - public string BTreeBlockSize => _configuration.GetValue("Umbraco:CMS:NuCache:BTreeBlockSize"); + public string BTreeBlockSize => _configuration.GetValue(Prefix+"BTreeBlockSize"); } } diff --git a/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs b/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs index 784147af07..ce5cd65c20 100644 --- a/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs +++ b/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs @@ -64,7 +64,7 @@ namespace Umbraco.Configuration.Models .Select(x => new CharItem() { Char = x.GetValue("Char"), - Replacement = x.GetValue("Replacement"),UseLegacyEncoding + Replacement = x.GetValue("Replacement"), }).ToArray(); if (collection.Any() || _configuration.GetSection("Prefix").GetChildren().Any(x => diff --git a/src/Umbraco.Configuration/Models/RuntimeSettings.cs b/src/Umbraco.Configuration/Models/RuntimeSettings.cs index 5103fcf75c..ef129030b6 100644 --- a/src/Umbraco.Configuration/Models/RuntimeSettings.cs +++ b/src/Umbraco.Configuration/Models/RuntimeSettings.cs @@ -1,17 +1,19 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class RuntimeSettings : IRuntimeSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Runtime:"; private readonly IConfiguration _configuration; public RuntimeSettings(IConfiguration configuration) { _configuration = configuration; } - public int? MaxQueryStringLength => _configuration.GetValue("Umbraco:CMS:Runtime:MaxRequestLength"); - public int? MaxRequestLength => _configuration.GetValue("Umbraco:CMS:Runtime:MaxRequestLength"); + public int? MaxQueryStringLength => _configuration.GetValue(Prefix+"MaxRequestLength"); + public int? MaxRequestLength => _configuration.GetValue(Prefix+"MaxRequestLength"); } } diff --git a/src/Umbraco.Configuration/Models/SecuritySettings.cs b/src/Umbraco.Configuration/Models/SecuritySettings.cs index 693a9506c9..9244eace96 100644 --- a/src/Umbraco.Configuration/Models/SecuritySettings.cs +++ b/src/Umbraco.Configuration/Models/SecuritySettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration.UmbracoSettings; namespace Umbraco.Configuration.Models { internal class SecuritySettings : ISecuritySettings { + private const string Prefix = Constants.Configuration.ConfigSecurityPrefix; private readonly IConfiguration _configuration; public SecuritySettings(IConfiguration configuration) @@ -12,20 +14,20 @@ namespace Umbraco.Configuration.Models _configuration = configuration; } - public bool KeepUserLoggedIn => _configuration.GetValue("Umbraco:CMS:Security:KeepUserLoggedIn", true); + public bool KeepUserLoggedIn => _configuration.GetValue(Prefix + "KeepUserLoggedIn", true); public bool HideDisabledUsersInBackoffice => - _configuration.GetValue("Umbraco:CMS:Security:HideDisabledUsersInBackoffice", false); + _configuration.GetValue(Prefix + "HideDisabledUsersInBackoffice", false); public bool AllowPasswordReset => - _configuration.GetValue("Umbraco:CMS:Security:AllowPasswordResetAllowPasswordReset", true); + _configuration.GetValue(Prefix + "AllowPasswordResetAllowPasswordReset", true); public string AuthCookieName => - _configuration.GetValue("Umbraco:CMS:Security:AuthCookieName", "UMB_UCONTEXT"); + _configuration.GetValue(Prefix + "AuthCookieName", "UMB_UCONTEXT"); public string AuthCookieDomain => - _configuration.GetValue("Umbraco:CMS:Security:AuthCookieDomain"); + _configuration.GetValue(Prefix + "AuthCookieDomain"); - public bool UsernameIsEmail => _configuration.GetValue("Umbraco:CMS:Security:UsernameIsEmail", true); + public bool UsernameIsEmail => _configuration.GetValue(Prefix + "UsernameIsEmail", true); } } diff --git a/src/Umbraco.Configuration/Models/TourSettings.cs b/src/Umbraco.Configuration/Models/TourSettings.cs index a859e4a490..9fe1814ff5 100644 --- a/src/Umbraco.Configuration/Models/TourSettings.cs +++ b/src/Umbraco.Configuration/Models/TourSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration.UmbracoSettings; namespace Umbraco.Configuration.Models { internal class TourSettings : ITourSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "Tours:"; private readonly IConfiguration _configuration; public TourSettings(IConfiguration configuration) @@ -14,6 +16,6 @@ namespace Umbraco.Configuration.Models public string Type { get; set; } - public bool EnableTours => _configuration.GetValue("Umbraco:CMS:Tours:EnableTours", true); + public bool EnableTours => _configuration.GetValue(Prefix+"EnableTours", true); } } diff --git a/src/Umbraco.Configuration/Models/TypeFinderSettings.cs b/src/Umbraco.Configuration/Models/TypeFinderSettings.cs index 0e2aacced2..8a1f7ac9e0 100644 --- a/src/Umbraco.Configuration/Models/TypeFinderSettings.cs +++ b/src/Umbraco.Configuration/Models/TypeFinderSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class TypeFinderSettings : ITypeFinderSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "TypeFinder:"; private readonly IConfiguration _configuration; public TypeFinderSettings(IConfiguration configuration) @@ -13,6 +15,6 @@ namespace Umbraco.Configuration.Models } public string AssembliesAcceptingLoadExceptions => - _configuration.GetValue("Umbraco:CMS:TypeFinder:AssembliesAcceptingLoadExceptions"); + _configuration.GetValue(Prefix+"AssembliesAcceptingLoadExceptions"); } } diff --git a/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs b/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs index d30ab0c1ea..19f975c13e 100644 --- a/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs +++ b/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs @@ -1,10 +1,12 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration; namespace Umbraco.Configuration.Models { internal class UserPasswordConfigurationSettings : IUserPasswordConfiguration { + private const string Prefix = Constants.Configuration.ConfigSecurityPrefix + "UserPassword:"; private readonly IConfiguration _configuration; public UserPasswordConfigurationSettings(IConfiguration configuration) @@ -12,26 +14,26 @@ namespace Umbraco.Configuration.Models _configuration = configuration; } - public int RequiredLength => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequiredLength", 10); + public int RequiredLength => _configuration.GetValue(Prefix + "RequiredLength", 10); public bool RequireNonLetterOrDigit => - _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireNonLetterOrDigit", false); + _configuration.GetValue(Prefix + "RequireNonLetterOrDigit", false); - public bool RequireDigit => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireDigit", false); + public bool RequireDigit => _configuration.GetValue(Prefix + "RequireDigit", false); public bool RequireLowercase => - _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireLowercase", false); + _configuration.GetValue(Prefix + "RequireLowercase", false); public bool RequireUppercase => - _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireUppercase", false); + _configuration.GetValue(Prefix + "RequireUppercase", false); public bool UseLegacyEncoding => - _configuration.GetValue("Umbraco:CMS:Security:UserPassword:UseLegacyEncoding", false); + _configuration.GetValue(Prefix + "UseLegacyEncoding", false); public string HashAlgorithmType => - _configuration.GetValue("Umbraco:CMS:Security:UserPassword:HashAlgorithmType", "HMACSHA256"); + _configuration.GetValue(Prefix + "HashAlgorithmType", "HMACSHA256"); public int MaxFailedAccessAttemptsBeforeLockout => - _configuration.GetValue("Umbraco:CMS:Security:UserPassword:MaxFailedAccessAttemptsBeforeLockout", 5); + _configuration.GetValue(Prefix + "MaxFailedAccessAttemptsBeforeLockout", 5); } } diff --git a/src/Umbraco.Configuration/Models/WebRoutingSettings.cs b/src/Umbraco.Configuration/Models/WebRoutingSettings.cs index c2670de511..9ac856ca9f 100644 --- a/src/Umbraco.Configuration/Models/WebRoutingSettings.cs +++ b/src/Umbraco.Configuration/Models/WebRoutingSettings.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.Configuration; +using Umbraco.Core; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Models.PublishedContent; @@ -6,6 +7,7 @@ namespace Umbraco.Configuration.Models { internal class WebRoutingSettings : IWebRoutingSettings { + private const string Prefix = Constants.Configuration.ConfigPrefix + "WebRouting:"; private readonly IConfiguration _configuration; public WebRoutingSettings(IConfiguration configuration) @@ -14,27 +16,27 @@ namespace Umbraco.Configuration.Models } public bool TrySkipIisCustomErrors => - _configuration.GetValue("Umbraco:CMS:WebRouting:TrySkipIisCustomErrors", false); + _configuration.GetValue(Prefix + "TrySkipIisCustomErrors", false); public bool InternalRedirectPreservesTemplate => - _configuration.GetValue("Umbraco:CMS:WebRouting:InternalRedirectPreservesTemplate", false); + _configuration.GetValue(Prefix + "InternalRedirectPreservesTemplate", false); public bool DisableAlternativeTemplates => - _configuration.GetValue("Umbraco:CMS:WebRouting:DisableAlternativeTemplates", false); + _configuration.GetValue(Prefix + "DisableAlternativeTemplates", false); public bool ValidateAlternativeTemplates => - _configuration.GetValue("Umbraco:CMS:WebRouting:ValidateAlternativeTemplates", false); + _configuration.GetValue(Prefix + "ValidateAlternativeTemplates", false); public bool DisableFindContentByIdPath => - _configuration.GetValue("Umbraco:CMS:WebRouting:DisableFindContentByIdPath", false); + _configuration.GetValue(Prefix + "DisableFindContentByIdPath", false); public bool DisableRedirectUrlTracking => - _configuration.GetValue("Umbraco:CMS:WebRouting:DisableRedirectUrlTracking", false); + _configuration.GetValue(Prefix + "DisableRedirectUrlTracking", false); public string UrlProviderMode => - _configuration.GetValue("Umbraco:CMS:WebRouting:UrlProviderMode", UrlMode.Auto.ToString()); + _configuration.GetValue(Prefix + "UrlProviderMode", UrlMode.Auto.ToString()); public string UmbracoApplicationUrl => - _configuration.GetValue("Umbraco:CMS:WebRouting:UmbracoApplicationUrl"); + _configuration.GetValue(Prefix + "UmbracoApplicationUrl"); } } diff --git a/src/Umbraco.Core/Constants-Configuration.cs b/src/Umbraco.Core/Constants-Configuration.cs index b3d9e52d63..c45229d918 100644 --- a/src/Umbraco.Core/Constants-Configuration.cs +++ b/src/Umbraco.Core/Constants-Configuration.cs @@ -11,6 +11,8 @@ /// ":" is used as marker for nested objects in json. E.g. "Umbraco:CMS:" = {"Umbraco":{"CMS":{....}} /// public const string ConfigPrefix = "Umbraco:CMS:"; + public const string ConfigSecurityPrefix = ConfigPrefix+"Security:"; + public const string ConfigModelsBuilderPrefix = ConfigPrefix+"ModelsBuilder:"; } } }