Introduced constants for config

This commit is contained in:
Bjarke Berg
2020-03-19 19:06:05 +01:00
parent b93b4f7c4f
commit dd012db594
24 changed files with 151 additions and 101 deletions

View File

@@ -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<string>("Umbraco:CMS:ActiveDirectory:Domain");
public string ActiveDirectoryDomain => _configuration.GetValue<string>(Prefix+"Domain");
}
}

View File

@@ -6,7 +6,7 @@ using Umbraco.Core.Configuration;
namespace Umbraco.Configuration.Models
{
public class ConnectionStrings : IConnectionStrings
internal class ConnectionStrings : IConnectionStrings
{
private readonly IConfiguration _configuration;

View File

@@ -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 =
@"<div id=""umbracoPreviewBadge"" class=""umbraco-preview-badge""><span class=""umbraco-preview-badge__header"">Preview mode</span><a href=""{0}/preview/end?redir={1}"" class=""umbraco-preview-badge__end""><svg viewBox=""0 0 100 100"" xmlns=""http://www.w3.org/2000/svg""><title>Click to end</title><path d=""M5273.1 2400.1v-2c0-2.8-5-4-9.7-4s-9.7 1.3-9.7 4v2a7 7 0 002 4.9l5 4.9c.3.3.4.6.4 1v6.4c0 .4.2.7.6.8l2.9.9c.5.1 1-.2 1-.8v-7.2c0-.4.2-.7.4-1l5.1-5a7 7 0 002-4.9zm-9.7-.1c-4.8 0-7.4-1.3-7.5-1.8.1-.5 2.7-1.8 7.5-1.8s7.3 1.3 7.5 1.8c-.2.5-2.7 1.8-7.5 1.8z""/><path d=""M5268.4 2410.3c-.6 0-1 .4-1 1s.4 1 1 1h4.3c.6 0 1-.4 1-1s-.4-1-1-1h-4.3zM5272.7 2413.7h-4.3c-.6 0-1 .4-1 1s.4 1 1 1h4.3c.6 0 1-.4 1-1s-.4-1-1-1zM5272.7 2417h-4.3c-.6 0-1 .4-1 1s.4 1 1 1h4.3c.6 0 1-.4 1-1 0-.5-.4-1-1-1z""/><path d=""M78.2 13l-8.7 11.7a32.5 32.5 0 11-51.9 25.8c0-10.3 4.7-19.7 12.9-25.8L21.8 13a47 47 0 1056.4 0z""/><path d=""M42.7 2.5h14.6v49.4H42.7z""/></svg></a></div><style type=""text/css"">.umbraco-preview-badge {{position: absolute;top: 1em;right: 1em;display: inline-flex;background: #1b264f;color: #fff;padding: 1em;font-size: 12px;z-index: 99999999;justify-content: center;align-items: center;box-shadow: 0 10px 50px rgba(0, 0, 0, .1), 0 6px 20px rgba(0, 0, 0, .16);line-height: 1;}}.umbraco-preview-badge__header {{font-weight: bold;}}.umbraco-preview-badge__end {{width: 3em;padding: 1em;margin: -1em -1em -1em 2em;display: flex;flex-shrink: 0;align-items: center;align-self: stretch;}}.umbraco-preview-badge__end:hover,.umbraco-preview-badge__end:focus {{background: #f5c1bc;}}.umbraco-preview-badge__end svg {{fill: #fff;width:1em;}}</style>";
@@ -28,44 +32,44 @@ namespace Umbraco.Configuration.Models
}
public string NotificationEmailAddress =>
_configuration.GetValue<string>("Umbraco:CMS:Content:Notifications:Email");
_configuration.GetValue<string>(NotificationsPrefix+"Email");
public bool DisableHtmlEmail =>
_configuration.GetValue("Umbraco:CMS:Content:Notifications:DisableHtmlEmail", false);
_configuration.GetValue(NotificationsPrefix+"DisableHtmlEmail", false);
public IEnumerable<string> 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<IImagingAutoFillUploadField> 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<IContentErrorPage> 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<string> DisallowedUploadFiles => _configuration.GetValue(
"Umbraco:CMS:Content:DisallowedUploadFiles",
Prefix+"DisallowedUploadFiles",
new[] { "ashx", "aspx", "ascx", "config", "cshtml", "vbhtml", "asmx", "air", "axd" });
public IEnumerable<string> AllowedUploadFiles =>
_configuration.GetValue("Umbraco:CMS:Content:AllowedUploadFiles", Array.Empty<string>());
_configuration.GetValue(Prefix+"AllowedUploadFiles", Array.Empty<string>());
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
{

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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
/// </summary>
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<string>("Umbraco:CMS:Global:Path");
public string Path => _configuration.GetValue<string>(Prefix + "Path");
// TODO: https://github.com/umbraco/Umbraco-CMS/issues/4238 - stop having version in web.config appSettings
public string ConfigurationStatus
{
get => _configuration.GetValue<string>("Umbraco:CMS:Global:ConfigurationStatus");
get => _configuration.GetValue<string>(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
{

View File

@@ -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<IDisabledHealthCheck> 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
{

View File

@@ -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
/// <inheritdoc />
public LocalTempStorage LocalTempStorageLocation =>
_configuration.GetValue("Umbraco:CMS:Hosting:LocalTempStorage", LocalTempStorage.Default);
_configuration.GetValue(Prefix+"LocalTempStorage", LocalTempStorage.Default);
/// <summary>
/// Gets a value indicating whether umbraco is running in [debug mode].
/// </summary>
/// <value><c>true</c> if [debug mode]; otherwise, <c>false</c>.</value>
public bool DebugMode => _configuration.GetValue("Umbraco:CMS:Hosting:Debug", false);
public bool DebugMode => _configuration.GetValue(Prefix+":Debug", false);
}
}

View File

@@ -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);
}
}

View File

@@ -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<string>("Umbraco:CMS:Examine:LuceneDirectoryFactory");
_configuration.GetValue<string>(Prefix + "LuceneDirectoryFactory");
}
}

View File

@@ -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");
}
}

View File

@@ -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);
}
}

View File

@@ -4,7 +4,7 @@ using Umbraco.Core.Configuration;
namespace Umbraco.Configuration.Models
{
public class MachineKeyConfig : IMachineKeyConfig
internal class MachineKeyConfig : IMachineKeyConfig
{
private readonly IConfiguration _configuration;

View File

@@ -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);
}
}

View File

@@ -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
/// </summary>
internal class ModelsBuilderConfig : IModelsBuilderConfig
{
private const string Prefix = Constants.Configuration.ConfigModelsBuilderPrefix;
private readonly IConfiguration _configuration;
/// <summary>
@@ -27,25 +29,25 @@ namespace Umbraco.Configuration.Models
/// <para>If this is false then absolutely nothing happens.</para>
/// <para>Default value is <c>false</c> which means that unless we have this setting, nothing happens.</para>
/// </remarks>
public bool Enable => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:Enable", false);
public bool Enable => _configuration.GetValue(Prefix+"Enable", false);
/// <summary>
/// Gets the models mode.
/// </summary>
public ModelsMode ModelsMode =>
_configuration.GetValue("Umbraco:CMS:ModelsBuilder:ModelsMode", ModelsMode.Nothing);
_configuration.GetValue(Prefix+"ModelsMode", ModelsMode.Nothing);
/// <summary>
/// Gets the models namespace.
/// </summary>
/// <remarks>That value could be overriden by other (attribute in user's code...). Return default if no value was supplied.</remarks>
public string ModelsNamespace => _configuration.GetValue<string>("Umbraco:CMS:ModelsBuilder:ModelsNamespace");
public string ModelsNamespace => _configuration.GetValue<string>(Prefix+"ModelsNamespace");
/// <summary>
/// Gets a value indicating whether we should enable the models factory.
/// </summary>
/// <remarks>Default value is <c>true</c> because no factory is enabled by default in Umbraco.</remarks>
public bool EnableFactory => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:EnableFactory", true);
public bool EnableFactory => _configuration.GetValue(Prefix+"EnableFactory", true);
/// <summary>
/// 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 <c>false</c>.
/// </remarks>
public bool FlagOutOfDateModels =>
_configuration.GetValue("Umbraco:CMS:ModelsBuilder:FlagOutOfDateModels", false) && !ModelsMode.IsLive();
_configuration.GetValue(Prefix+"FlagOutOfDateModels", false) && !ModelsMode.IsLive();
/// <summary>
/// Gets the models directory.
/// </summary>
/// <remarks>Default is ~/App_Data/Models but that can be changed.</remarks>
public string ModelsDirectory =>
_configuration.GetValue("Umbraco:CMS:ModelsBuilder:ModelsDirectory", "~/App_Data/Models");
_configuration.GetValue(Prefix+"ModelsDirectory", "~/App_Data/Models");
/// <summary>
/// Gets a value indicating whether to accept an unsafe value for ModelsDirectory.
@@ -73,12 +75,12 @@ namespace Umbraco.Configuration.Models
/// of the website root.
/// </remarks>
public bool AcceptUnsafeModelsDirectory =>
_configuration.GetValue("Umbraco:CMS:ModelsBuilder:AcceptUnsafeModelsDirectory", false);
_configuration.GetValue(Prefix+"AcceptUnsafeModelsDirectory", false);
/// <summary>
/// Gets a value indicating the debug log level.
/// </summary>
/// <remarks>0 means minimal (safe on live site), anything else means more and more details (maybe not safe).</remarks>
public int DebugLevel => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:DebugLevel", 0);
public int DebugLevel => _configuration.GetValue(Prefix+"DebugLevel", 0);
}
}

View File

@@ -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<string>("Umbraco:CMS:NuCache:BTreeBlockSize");
public string BTreeBlockSize => _configuration.GetValue<string>(Prefix+"BTreeBlockSize");
}
}

View File

@@ -64,7 +64,7 @@ namespace Umbraco.Configuration.Models
.Select(x => new CharItem()
{
Char = x.GetValue<string>("Char"),
Replacement = x.GetValue<string>("Replacement"),UseLegacyEncoding
Replacement = x.GetValue<string>("Replacement"),
}).ToArray();
if (collection.Any() || _configuration.GetSection("Prefix").GetChildren().Any(x =>

View File

@@ -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<int?>("Umbraco:CMS:Runtime:MaxRequestLength");
public int? MaxRequestLength => _configuration.GetValue<int?>("Umbraco:CMS:Runtime:MaxRequestLength");
public int? MaxQueryStringLength => _configuration.GetValue<int?>(Prefix+"MaxRequestLength");
public int? MaxRequestLength => _configuration.GetValue<int?>(Prefix+"MaxRequestLength");
}
}

View File

@@ -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<string>("Umbraco:CMS:Security:AuthCookieDomain");
_configuration.GetValue<string>(Prefix + "AuthCookieDomain");
public bool UsernameIsEmail => _configuration.GetValue("Umbraco:CMS:Security:UsernameIsEmail", true);
public bool UsernameIsEmail => _configuration.GetValue(Prefix + "UsernameIsEmail", true);
}
}

View File

@@ -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);
}
}

View File

@@ -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<string>("Umbraco:CMS:TypeFinder:AssembliesAcceptingLoadExceptions");
_configuration.GetValue<string>(Prefix+"AssembliesAcceptingLoadExceptions");
}
}

View File

@@ -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);
}
}

View File

@@ -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<string>("Umbraco:CMS:WebRouting:UmbracoApplicationUrl");
_configuration.GetValue<string>(Prefix + "UmbracoApplicationUrl");
}
}

View File

@@ -11,6 +11,8 @@
/// ":" is used as marker for nested objects in json. E.g. "Umbraco:CMS:" = {"Umbraco":{"CMS":{....}}
/// </remarks>
public const string ConfigPrefix = "Umbraco:CMS:";
public const string ConfigSecurityPrefix = ConfigPrefix+"Security:";
public const string ConfigModelsBuilderPrefix = ConfigPrefix+"ModelsBuilder:";
}
}
}