diff --git a/src/Umbraco.Configuration/Models/ConnectionStrings.cs b/src/Umbraco.Configuration/Models/ConnectionStrings.cs
index 19fa9c6433..167e636bfb 100644
--- a/src/Umbraco.Configuration/Models/ConnectionStrings.cs
+++ b/src/Umbraco.Configuration/Models/ConnectionStrings.cs
@@ -3,7 +3,6 @@ using Microsoft.Extensions.Configuration;
using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
-
namespace Umbraco.Configuration.Models
{
public class ConnectionStrings : IConnectionStrings
diff --git a/src/Umbraco.Configuration/Models/ContentSettings.cs b/src/Umbraco.Configuration/Models/ContentSettings.cs
index 176e424be5..b109c2e45e 100644
--- a/src/Umbraco.Configuration/Models/ContentSettings.cs
+++ b/src/Umbraco.Configuration/Models/ContentSettings.cs
@@ -5,45 +5,67 @@ using Microsoft.Extensions.Configuration;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Macros;
-
namespace Umbraco.Configuration.Models
{
internal class ContentSettings : IContentSettings
{
+ private const string DefaultPreviewBadge =
+ @"
";
+
+ private static readonly ImagingAutoFillUploadField[] DefaultImagingAutoFillUploadField =
+ {
+ new ImagingAutoFillUploadField
+ {
+ Alias = "umbracoFile"
+ }
+ };
private readonly IConfiguration _configuration;
+
public ContentSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- private const string DefaultPreviewBadge = @"";
+ public string NotificationEmailAddress =>
+ _configuration.GetValue("Umbraco:CMS:Content:Notifications:Email");
- private static IEnumerable DefaultImagingAutoFillUploadField = new[]
- {
- new ImagingAutoFillUploadField()
- {
- Alias = "umbracoFile"
- },
- };
+ public bool DisableHtmlEmail =>
+ _configuration.GetValue("Umbraco:CMS:Content:Notifications:DisableHtmlEmail", false);
- public string NotificationEmailAddress => _configuration.GetValue("Umbraco:CMS:Content:Notifications:Email") ?? null;
- public bool DisableHtmlEmail => _configuration.GetValue("Umbraco:CMS:Content:Notifications:DisableHtmlEmail") ?? false;
- public IEnumerable ImageFileTypes => _configuration.GetValue("Umbraco:CMS:Content:Imaging:ImageFileTypes") ?? new[] {"jpeg", "jpg", "gif", "bmp", "png", "tiff", "tif"};
- public IEnumerable ImageAutoFillProperties => _configuration.GetValue("Umbraco:CMS:Core:Content:Imaging:autoFillImageProperties") ?? DefaultImagingAutoFillUploadField;
+ public IEnumerable ImageFileTypes => _configuration.GetValue(
+ "Umbraco:CMS:Content:Imaging:ImageFileTypes", new[] { "jpeg", "jpg", "gif", "bmp", "png", "tiff", "tif" });
+
+ public IEnumerable ImageAutoFillProperties =>
+ _configuration.GetValue("Umbraco:CMS:Core:Content:Imaging:autoFillImageProperties",
+ DefaultImagingAutoFillUploadField);
- public bool ResolveUrlsFromTextString => _configuration.GetValue("Umbraco:CMS:Content:ResolveUrlsFromTextString") ?? false;
+ public bool ResolveUrlsFromTextString =>
+ _configuration.GetValue("Umbraco:CMS:Content:ResolveUrlsFromTextString", false);
+
public IEnumerable Error404Collection => _configuration
.GetSection("Umbraco:CMS:Content:Errors:Error404")
.GetChildren()
- .Select(x=> new ContentErrorPage(x));
- public string PreviewBadge => _configuration.GetValue("Umbraco:CMS:Content:PreviewBadge") ?? DefaultPreviewBadge;
- public MacroErrorBehaviour MacroErrorBehaviour => _configuration.GetValue("Umbraco:CMS:Content:MacroErrors") ?? MacroErrorBehaviour.Inline;
- public IEnumerable DisallowedUploadFiles => _configuration.GetValue("Umbraco:CMS:Content:DisallowedUploadFiles") ?? new[] {"ashx", "aspx", "ascx", "config", "cshtml", "vbhtml", "asmx", "air", "axd"};
- public IEnumerable AllowedUploadFiles => _configuration.GetValue("Umbraco:CMS:Content:AllowedUploadFiles") ?? Array.Empty() ;
- public bool ShowDeprecatedPropertyEditors => _configuration.GetValue("Umbraco:CMS:Content:ShowDeprecatedPropertyEditors") ?? false;
- public string LoginBackgroundImage => _configuration.GetValue("Umbraco:CMS:Content:LoginBackgroundImage") ?? string.Empty;
+ .Select(x => new ContentErrorPage(x));
+
+ public string PreviewBadge => _configuration.GetValue("Umbraco:CMS:Content:PreviewBadge", DefaultPreviewBadge);
+
+ public MacroErrorBehaviour MacroErrorBehaviour =>
+ _configuration.GetValue("Umbraco:CMS:Content:MacroErrors", MacroErrorBehaviour.Inline);
+
+ public IEnumerable DisallowedUploadFiles => _configuration.GetValue(
+ "Umbraco:CMS:Content:DisallowedUploadFiles",
+ new[] { "ashx", "aspx", "ascx", "config", "cshtml", "vbhtml", "asmx", "air", "axd" });
+
+ public IEnumerable AllowedUploadFiles =>
+ _configuration.GetValue("Umbraco:CMS:Content:AllowedUploadFiles", Array.Empty());
+
+ public bool ShowDeprecatedPropertyEditors =>
+ _configuration.GetValue("Umbraco:CMS:Content:ShowDeprecatedPropertyEditors", false);
+
+ public string LoginBackgroundImage =>
+ _configuration.GetValue("Umbraco:CMS:Content:LoginBackgroundImage", string.Empty);
private class ContentErrorPage : IContentErrorPage
{
@@ -53,12 +75,12 @@ namespace Umbraco.Configuration.Models
var value = configurationSection.Value;
- if(int.TryParse(value, out var contentId))
+ if (int.TryParse(value, out var contentId))
{
HasContentId = true;
ContentId = contentId;
}
- else if(Guid.TryParse(value, out var contentKey))
+ else if (Guid.TryParse(value, out var contentKey))
{
HasContentKey = true;
ContentKey = contentKey;
@@ -69,11 +91,11 @@ namespace Umbraco.Configuration.Models
}
}
- public int ContentId { get; set; }
- public Guid ContentKey { get; set;}
- public string ContentXPath { get; set;}
- public bool HasContentId { get; set;}
- public bool HasContentKey { get; set;}
+ public int ContentId { get; }
+ public Guid ContentKey { get; }
+ public string ContentXPath { get; }
+ public bool HasContentId { get; }
+ public bool HasContentKey { get; }
public string Culture { get; set; }
}
diff --git a/src/Umbraco.Configuration/Models/CoreDebugSettings.cs b/src/Umbraco.Configuration/Models/CoreDebugSettings.cs
index ad01bcdd74..687bdc17d3 100644
--- a/src/Umbraco.Configuration/Models/CoreDebugSettings.cs
+++ b/src/Umbraco.Configuration/Models/CoreDebugSettings.cs
@@ -6,11 +6,16 @@ namespace Umbraco.Configuration.Models
internal class CoreDebugSettings : ICoreDebugSettings
{
private readonly IConfiguration _configuration;
+
public CoreDebugSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public bool LogUncompletedScopes => _configuration.GetValue("Umbraco:CMS:Core:Debug:LogUncompletedScopes") ?? false;
- public bool DumpOnTimeoutThreadAbort => _configuration.GetValue("Umbraco:CMS:Core:Debug:DumpOnTimeoutThreadAbort") ?? false;
+
+ public bool LogUncompletedScopes =>
+ _configuration.GetValue("Umbraco:CMS:Core:Debug:LogUncompletedScopes", false);
+
+ public bool DumpOnTimeoutThreadAbort =>
+ _configuration.GetValue("Umbraco:CMS:Core:Debug:DumpOnTimeoutThreadAbort", false);
}
}
diff --git a/src/Umbraco.Configuration/Models/GlobalSettings.cs b/src/Umbraco.Configuration/Models/GlobalSettings.cs
index fec9b3ef40..4b0415cd67 100644
--- a/src/Umbraco.Configuration/Models/GlobalSettings.cs
+++ b/src/Umbraco.Configuration/Models/GlobalSettings.cs
@@ -1,26 +1,24 @@
using System;
-using System.Configuration;
using System.Linq;
-using System.Net.Mail;
-using System.Xml.Linq;
using Microsoft.Extensions.Configuration;
-using Umbraco.Composing;
-using Umbraco.Configuration;
-using Umbraco.Core;
using Umbraco.Core.Configuration;
-using Umbraco.Core.IO;
namespace Umbraco.Configuration.Models
{
///
- /// The GlobalSettings Class contains general settings information for the entire Umbraco instance based on information from web.config appsettings
+ /// The GlobalSettings Class contains general settings information for the entire Umbraco instance based on information
+ /// from web.config appsettings
///
public class GlobalSettings : IGlobalSettings
{
+ internal const string
+ StaticReservedPaths = "~/app_plugins/,~/install/,~/mini-profiler-resources/,"; //must end with a comma!
+
+ internal const string
+ StaticReservedUrls = "~/config/splashes/noNodes.aspx,~/.well-known,"; //must end with a comma!
+
private readonly IConfiguration _configuration;
- internal const string StaticReservedPaths = "~/app_plugins/,~/install/,~/mini-profiler-resources/,"; //must end with a comma!
- internal const string StaticReservedUrls = "~/config/splashes/noNodes.aspx,~/.well-known,"; //must end with a comma!
public GlobalSettings(IConfiguration configuration)
{
_configuration = configuration;
@@ -28,7 +26,9 @@ namespace Umbraco.Configuration.Models
public string ReservedUrls => _configuration.GetValue("Umbraco:CMS:Global:ReservedUrls", StaticReservedUrls);
public string ReservedPaths => _configuration.GetValue("Umbraco:CMS:Global:ReservedPaths", StaticReservedPaths);
- public string Path => _configuration.GetValue("Umbraco:CMS:Global:Path");
+
+ public string Path => _configuration.GetValue("Umbraco:CMS:Global:Path");
+
// TODO: https://github.com/umbraco/Umbraco-CMS/issues/4238 - stop having version in web.config appSettings
public string ConfigurationStatus
{
@@ -38,20 +38,37 @@ namespace Umbraco.Configuration.Models
public int TimeOutInMinutes => _configuration.GetValue("Umbraco:CMS:Global:TimeOutInMinutes", 20);
public string DefaultUILanguage => _configuration.GetValue("Umbraco:CMS:Global:TimeOutInMinutes", "en-US");
- public bool HideTopLevelNodeFromPath => _configuration.GetValue("Umbraco:CMS:Global:HideTopLevelNodeFromPath", false);
+
+ public bool HideTopLevelNodeFromPath =>
+ _configuration.GetValue("Umbraco:CMS:Global: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 string UmbracoScriptsPath => _configuration.GetValue("Umbraco:CMS:Global:UmbracoScriptsPath", "~/scripts");
+
+ public string UmbracoScriptsPath =>
+ _configuration.GetValue("Umbraco:CMS:Global:UmbracoScriptsPath", "~/scripts");
+
public string UmbracoMediaPath => _configuration.GetValue("Umbraco:CMS:Global:UmbracoMediaPath", "~/media");
- public bool InstallMissingDatabase => _configuration.GetValue("Umbraco:CMS:Global:InstallMissingDatabase", false);
+
+ public bool InstallMissingDatabase =>
+ _configuration.GetValue("Umbraco:CMS:Global:InstallMissingDatabase", false);
+
public bool InstallEmptyDatabase => _configuration.GetValue("Umbraco:CMS:Global:InstallEmptyDatabase", false);
- public bool DisableElectionForSingleServer => _configuration.GetValue("Umbraco:CMS:Global:DisableElectionForSingleServer", false);
+
+ public bool DisableElectionForSingleServer =>
+ _configuration.GetValue("Umbraco:CMS:Global:DisableElectionForSingleServer", false);
+
public string RegisterType => _configuration.GetValue("Umbraco:CMS:Global:RegisterType", string.Empty);
- public string DatabaseFactoryServerVersion => _configuration.GetValue("Umbraco:CMS:Global:DatabaseFactoryServerVersion", string.Empty);
+
+ public string DatabaseFactoryServerVersion =>
+ _configuration.GetValue("Umbraco:CMS:Global:DatabaseFactoryServerVersion", string.Empty);
+
public string MainDomLock => _configuration.GetValue("Umbraco:CMS:Global:MainDomLock", string.Empty);
- public string NoNodesViewPath => _configuration.GetValue("Umbraco:CMS:Global:NoNodesViewPath", "~/config/splashes/NoNodes.cshtml");
+
+ public string NoNodesViewPath =>
+ _configuration.GetValue("Umbraco:CMS:Global:NoNodesViewPath", "~/config/splashes/NoNodes.cshtml");
public bool IsSmtpServerConfigured =>
_configuration.GetSection("Umbraco:CMS:Smtp")?.GetChildren().Any() ?? false;
@@ -68,9 +85,9 @@ namespace Umbraco.Configuration.Models
}
public string From => _configurationSection.GetValue("From");
- public string Host => _configurationSection.GetValue("Host");
- public int Port => _configurationSection.GetValue("Port");
- public string PickupDirectoryLocation => _configurationSection.GetValue("PickupDirectoryLocation");
+ public string Host => _configurationSection.GetValue("Host");
+ public int Port => _configurationSection.GetValue("Port");
+ public string PickupDirectoryLocation => _configurationSection.GetValue("PickupDirectoryLocation");
}
}
}
diff --git a/src/Umbraco.Configuration/Models/HealthChecksSettingsSettings.cs b/src/Umbraco.Configuration/Models/HealthChecksSettingsSettings.cs
index cd52f8af30..d815021109 100644
--- a/src/Umbraco.Configuration/Models/HealthChecksSettingsSettings.cs
+++ b/src/Umbraco.Configuration/Models/HealthChecksSettingsSettings.cs
@@ -9,25 +9,32 @@ namespace Umbraco.Configuration.Models
internal class HealthChecksSettings : IHealthChecksSettings
{
private readonly IConfiguration _configuration;
+
public HealthChecksSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public IEnumerable DisabledChecks => _configuration.GetSection("Umbraco:CMS:HealthChecks:DisabledChecks").GetChildren().Select(
- x => new DisabledHealthCheck()
- {
- Id = x.GetValue("Id"),
- DisabledOn = x.GetValue("DisabledOn"),
- DisabledBy = x.GetValue("DisabledBy"),
- });
- public IHealthCheckNotificationSettings NotificationSettings => new HealthCheckNotificationSettings(_configuration.GetSection("Umbraco:CMS:HealthChecks:NotificationSettings"));
+ public IEnumerable DisabledChecks => _configuration
+ .GetSection("Umbraco:CMS:HealthChecks:DisabledChecks")
+ .GetChildren()
+ .Select(
+ x => new DisabledHealthCheck
+ {
+ Id = x.GetValue("Id"),
+ DisabledOn = x.GetValue("DisabledOn"),
+ DisabledBy = x.GetValue("DisabledBy")
+ });
+
+ public IHealthCheckNotificationSettings NotificationSettings =>
+ new HealthCheckNotificationSettings(
+ _configuration.GetSection("Umbraco:CMS:HealthChecks:NotificationSettings"));
private class DisabledHealthCheck : IDisabledHealthCheck
{
public Guid Id { get; set; }
- public DateTime DisabledOn { get;set; }
- public int DisabledBy { get;set; }
+ public DateTime DisabledOn { get; set; }
+ public int DisabledBy { get; set; }
}
private class HealthCheckNotificationSettings : IHealthCheckNotificationSettings
@@ -39,41 +46,46 @@ namespace Umbraco.Configuration.Models
_configurationSection = configurationSection;
}
- public bool Enabled => _configurationSection.GetValue("Enabled", false);
+ public bool Enabled => _configurationSection.GetValue("Enabled", false);
public string FirstRunTime => _configurationSection.GetValue("FirstRunTime");
- public int PeriodInHours => _configurationSection.GetValue("PeriodInHours", 24);
+ public int PeriodInHours => _configurationSection.GetValue("PeriodInHours", 24);
public IReadOnlyDictionary NotificationMethods => _configurationSection
.GetSection("NotificationMethods")
.GetChildren()
- .ToDictionary(x=>x.Key, x=> (INotificationMethod) new NotificationMethod(x.Key, x));
+ .ToDictionary(x => x.Key, x => (INotificationMethod) new NotificationMethod(x.Key, x));
- public IEnumerable DisabledChecks => _configurationSection.GetSection("DisabledChecks").GetChildren().Select(
- x => new DisabledHealthCheck()
- {
- Id = x.GetValue("Id"),
- DisabledOn = x.GetValue("DisabledOn"),
- DisabledBy = x.GetValue("DisabledBy"),
- });
+ public IEnumerable DisabledChecks => _configurationSection
+ .GetSection("DisabledChecks").GetChildren().Select(
+ x => new DisabledHealthCheck
+ {
+ Id = x.GetValue("Id"),
+ DisabledOn = x.GetValue("DisabledOn"),
+ DisabledBy = x.GetValue("DisabledBy")
+ });
}
private class NotificationMethod : INotificationMethod
{
private readonly IConfigurationSection _configurationSection;
- public NotificationMethod(string alias, IConfigurationSection configurationSection)
+ public NotificationMethod(string alias, IConfigurationSection configurationSection)
{
Alias = alias;
_configurationSection = configurationSection;
}
public string Alias { get; }
- public bool Enabled => _configurationSection.GetValue("Enabled", false);
- public HealthCheckNotificationVerbosity Verbosity => _configurationSection.GetValue("Verbosity", HealthCheckNotificationVerbosity.Summary);
- public bool FailureOnly => _configurationSection.GetValue("FailureOnly", true);
+ public bool Enabled => _configurationSection.GetValue("Enabled", false);
+
+ public HealthCheckNotificationVerbosity Verbosity =>
+ _configurationSection.GetValue("Verbosity", HealthCheckNotificationVerbosity.Summary);
+
+ public bool FailureOnly => _configurationSection.GetValue("FailureOnly", true);
public IReadOnlyDictionary Settings => _configurationSection
- .GetSection("Settings").GetChildren().ToDictionary(x => x.Key, x => (INotificationMethodSettings)new NotificationMethodSettings(x.Key, x.Value));
+ .GetSection("Settings").GetChildren().ToDictionary(x => x.Key,
+ x => (INotificationMethodSettings) new NotificationMethodSettings(x.Key, x.Value));
}
private class NotificationMethodSettings : INotificationMethodSettings
diff --git a/src/Umbraco.Configuration/Models/HostingSettings.cs b/src/Umbraco.Configuration/Models/HostingSettings.cs
index c5e01b25c6..765cc0fbc6 100644
--- a/src/Umbraco.Configuration/Models/HostingSettings.cs
+++ b/src/Umbraco.Configuration/Models/HostingSettings.cs
@@ -1,8 +1,5 @@
-using System.Configuration;
-using Microsoft.Extensions.Configuration;
-using Umbraco.Core;
+using Microsoft.Extensions.Configuration;
using Umbraco.Core.Configuration;
-using ConfigurationSection = System.Configuration.ConfigurationSection;
namespace Umbraco.Configuration.Models
{
@@ -14,14 +11,15 @@ namespace Umbraco.Configuration.Models
{
_configuration = configuration;
}
+
///
public LocalTempStorage LocalTempStorageLocation =>
_configuration.GetValue("Umbraco:CMS:Hosting:LocalTempStorage", LocalTempStorage.Default);
///
- /// Gets a value indicating whether umbraco is running in [debug mode].
+ /// 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("Umbraco:CMS:Hosting:Debug", false);
}
}
diff --git a/src/Umbraco.Configuration/Models/ImagingSettings.cs b/src/Umbraco.Configuration/Models/ImagingSettings.cs
index cea8905c56..6ec0924eb6 100644
--- a/src/Umbraco.Configuration/Models/ImagingSettings.cs
+++ b/src/Umbraco.Configuration/Models/ImagingSettings.cs
@@ -3,7 +3,7 @@ using Umbraco.Core.Configuration;
namespace Umbraco.Configuration.Models
{
- public class ImagingSettings :IImagingSettings
+ public class ImagingSettings : IImagingSettings
{
private readonly IConfiguration _configuration;
@@ -14,7 +14,7 @@ namespace Umbraco.Configuration.Models
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 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");
diff --git a/src/Umbraco.Configuration/Models/KeepAliveSettings.cs b/src/Umbraco.Configuration/Models/KeepAliveSettings.cs
index 4eb7f290a5..e080ecd360 100644
--- a/src/Umbraco.Configuration/Models/KeepAliveSettings.cs
+++ b/src/Umbraco.Configuration/Models/KeepAliveSettings.cs
@@ -6,11 +6,16 @@ namespace Umbraco.Configuration.Models
internal class KeepAliveSettings : IKeepAliveSettings
{
private readonly IConfiguration _configuration;
+
public KeepAliveSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public bool DisableKeepAliveTask => _configuration.GetValue("Umbraco:CMS:KeepAlive:DisableKeepAliveTask") ?? false;
- public string KeepAlivePingUrl => _configuration.GetValue("Umbraco:CMS:KeepAlive:KeepAlivePingUrl") ?? "{umbracoApplicationUrl}/api/keepalive/ping";
+
+ public bool DisableKeepAliveTask =>
+ _configuration.GetValue("Umbraco:CMS:KeepAlive:DisableKeepAliveTask", false);
+
+ public string KeepAlivePingUrl => _configuration.GetValue("Umbraco:CMS:KeepAlive:KeepAlivePingUrl",
+ "{umbracoApplicationUrl}/api/keepalive/ping");
}
}
diff --git a/src/Umbraco.Configuration/Models/LoggingSettings.cs b/src/Umbraco.Configuration/Models/LoggingSettings.cs
index c1f3efc816..60110817d9 100644
--- a/src/Umbraco.Configuration/Models/LoggingSettings.cs
+++ b/src/Umbraco.Configuration/Models/LoggingSettings.cs
@@ -10,6 +10,6 @@ namespace Umbraco.Configuration.Models
{
_configuration = configuration;
}
- public int MaxLogAge => _configuration.GetValue("Umbraco:CMS:Logging:MaxLogAge") ?? -1;
+ public int MaxLogAge => _configuration.GetValue("Umbraco:CMS:Logging:MaxLogAge", -1);
}
}
diff --git a/src/Umbraco.Configuration/Models/MachineKeyConfig.cs b/src/Umbraco.Configuration/Models/MachineKeyConfig.cs
index 46f5dd0d53..a22352dd22 100644
--- a/src/Umbraco.Configuration/Models/MachineKeyConfig.cs
+++ b/src/Umbraco.Configuration/Models/MachineKeyConfig.cs
@@ -7,6 +7,7 @@ namespace Umbraco.Configuration.Models
public class MachineKeyConfig : IMachineKeyConfig
{
private readonly IConfiguration _configuration;
+
public MachineKeyConfig(IConfiguration configuration)
{
_configuration = configuration;
@@ -15,6 +16,5 @@ namespace Umbraco.Configuration.Models
//TODO all the machineKey stuff should be replaced: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/compatibility/replacing-machinekey?view=aspnetcore-3.1
public bool HasMachineKey => throw new NotImplementedException("TODO we need to figure out what to do here");
-
}
}
diff --git a/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs b/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs
index 31ceca0062..e97013d3d5 100644
--- a/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs
+++ b/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs
@@ -5,20 +5,35 @@ namespace Umbraco.Configuration.Models
{
internal class MemberPasswordConfigurationSettings : IMemberPasswordConfiguration
{
-
private readonly IConfiguration _configuration;
+
public MemberPasswordConfigurationSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public int RequiredLength => _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequiredLength") ?? 10;
- public bool RequireNonLetterOrDigit => _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireNonLetterOrDigit") ?? false;
- public bool RequireDigit => _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireDigit") ?? false;
- public bool RequireLowercase => _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireLowercase") ?? false;
- public bool RequireUppercase => _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireUppercase") ?? false;
- public bool UseLegacyEncoding => _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:UseLegacyEncoding") ?? false;
- public string HashAlgorithmType => _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:HashAlgorithmType") ?? "HMACSHA256";
- public int MaxFailedAccessAttemptsBeforeLockout => _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:MaxFailedAccessAttemptsBeforeLockout") ?? 5;
+ public int RequiredLength =>
+ _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequiredLength", 10);
+
+ public bool RequireNonLetterOrDigit =>
+ _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireNonLetterOrDigit", false);
+
+ public bool RequireDigit =>
+ _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireDigit", false);
+
+ public bool RequireLowercase =>
+ _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireLowercase", false);
+
+ public bool RequireUppercase =>
+ _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:RequireUppercase", false);
+
+ public bool UseLegacyEncoding =>
+ _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:UseLegacyEncoding", false);
+
+ public string HashAlgorithmType =>
+ _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:HashAlgorithmType", "HMACSHA256");
+
+ public int MaxFailedAccessAttemptsBeforeLockout =>
+ _configuration.GetValue("Umbraco:CMS:Security:MemberPassword:MaxFailedAccessAttemptsBeforeLockout", 5);
}
}
diff --git a/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs b/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs
index fbad7f219d..594a317854 100644
--- a/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs
+++ b/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs
@@ -1,33 +1,27 @@
-using System;
-using System.Configuration;
-using System.IO;
-using System.Threading;
-using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.Configuration;
using Umbraco.Core.Configuration;
-using Umbraco.Core;
-using Umbraco.Core.IO;
-using ConfigurationSection = System.Configuration.ConfigurationSection;
namespace Umbraco.Configuration.Models
{
///
- /// Represents the models builder configuration.
+ /// Represents the models builder configuration.
///
internal class ModelsBuilderConfig : IModelsBuilderConfig
{
private readonly IConfiguration _configuration;
- public string DefaultModelsDirectory => "~/App_Data/Models";
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
public ModelsBuilderConfig(IConfiguration configuration)
{
_configuration = configuration;
}
+ public string DefaultModelsDirectory => "~/App_Data/Models";
+
///
- /// Gets a value indicating whether the whole models experience is enabled.
+ /// Gets a value indicating whether the whole models experience is enabled.
///
///
/// If this is false then absolutely nothing happens.
@@ -36,46 +30,53 @@ namespace Umbraco.Configuration.Models
public bool Enable => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:Enable", false);
///
- /// Gets the models mode.
+ /// Gets the models mode.
///
- public ModelsMode ModelsMode => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:ModelsMode", ModelsMode.Nothing);
+ public ModelsMode ModelsMode =>
+ _configuration.GetValue("Umbraco:CMS:ModelsBuilder:ModelsMode", ModelsMode.Nothing);
///
- /// Gets the models namespace.
+ /// 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");
///
- /// Gets a value indicating whether we should enable the models factory.
+ /// 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);
///
- /// Gets a value indicating whether we should flag out-of-date models.
+ /// Gets a value indicating whether we should flag out-of-date models.
///
- /// Models become out-of-date when data types or content types are updated. When this
- /// setting is activated the ~/App_Data/Models/ood.txt file is then created. When models are
- /// generated through the dashboard, the files is cleared. Default value is false.
- public bool FlagOutOfDateModels => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:FlagOutOfDateModels", false) && !ModelsMode.IsLive();
+ ///
+ /// Models become out-of-date when data types or content types are updated. When this
+ /// setting is activated the ~/App_Data/Models/ood.txt file is then created. When models are
+ /// generated through the dashboard, the files is cleared. Default value is false.
+ ///
+ public bool FlagOutOfDateModels =>
+ _configuration.GetValue("Umbraco:CMS:ModelsBuilder:FlagOutOfDateModels", false) && !ModelsMode.IsLive();
///
- /// Gets the models directory.
+ /// 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");
///
- /// Gets a value indicating whether to accept an unsafe value for ModelsDirectory.
+ /// Gets a value indicating whether to accept an unsafe value for ModelsDirectory.
///
- /// An unsafe value is an absolute path, or a relative path pointing outside
- /// of the website root.
- public bool AcceptUnsafeModelsDirectory => _configuration.GetValue("Umbraco:CMS:ModelsBuilder:AcceptUnsafeModelsDirectory", false);
+ ///
+ /// An unsafe value is an absolute path, or a relative path pointing outside
+ /// of the website root.
+ ///
+ public bool AcceptUnsafeModelsDirectory =>
+ _configuration.GetValue("Umbraco:CMS:ModelsBuilder:AcceptUnsafeModelsDirectory", false);
///
- /// Gets a value indicating the debug log level.
+ /// 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);
diff --git a/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs b/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs
index 7c7a2c0a4f..e0804abd0e 100644
--- a/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs
+++ b/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs
@@ -9,31 +9,37 @@ namespace Umbraco.Configuration.Models
internal class RequestHandlerSettings : IRequestHandlerSettings
{
private readonly IConfiguration _configuration;
+
public RequestHandlerSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public bool AddTrailingSlash => _configuration.GetValue("Umbraco:CMS:RequestHandler:AddTrailingSlash") ?? true;
- public bool ConvertUrlsToAscii => _configuration.GetValue("Umbraco:CMS:RequestHandler:ConvertUrlsToAscii").InvariantEquals("true");
- public bool TryConvertUrlsToAscii => _configuration.GetValue("Umbraco:CMS:RequestHandler:ConvertUrlsToAscii").InvariantEquals("try");
+ public bool AddTrailingSlash =>
+ _configuration.GetValue("Umbraco:CMS:RequestHandler:AddTrailingSlash") ?? true;
+
+ public bool ConvertUrlsToAscii => _configuration
+ .GetValue("Umbraco:CMS:RequestHandler:ConvertUrlsToAscii").InvariantEquals("true");
+
+ public bool TryConvertUrlsToAscii => _configuration
+ .GetValue("Umbraco:CMS:RequestHandler:ConvertUrlsToAscii").InvariantEquals("try");
//We need to special handle ":", as this character is special in keys
- public IEnumerable CharCollection => _configuration.GetSection("Umbraco:CMS:RequestHandler:CharCollection")
+ public IEnumerable CharCollection => _configuration
+ .GetSection("Umbraco:CMS:RequestHandler:CharCollection")
.GetChildren()
- .Select(kvp => new CharItem()
+ .Select(kvp => new CharItem
{
Char = kvp.Key,
Replacement = kvp.Value
- }).Union(new []
+ }).Union(new[]
{
- new CharItem(){Char = ":", Replacement = string.Empty},
+ new CharItem { Char = ":", Replacement = string.Empty }
});
private class CharItem : IChar
{
-
public string Char { get; set; }
public string Replacement { get; set; }
}
diff --git a/src/Umbraco.Configuration/Models/SecuritySettings.cs b/src/Umbraco.Configuration/Models/SecuritySettings.cs
index 91721fb26a..693a9506c9 100644
--- a/src/Umbraco.Configuration/Models/SecuritySettings.cs
+++ b/src/Umbraco.Configuration/Models/SecuritySettings.cs
@@ -6,15 +6,26 @@ namespace Umbraco.Configuration.Models
internal class SecuritySettings : ISecuritySettings
{
private readonly IConfiguration _configuration;
+
public SecuritySettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public bool KeepUserLoggedIn => _configuration.GetValue("Umbraco:CMS:Security:KeepUserLoggedIn") ?? true;
- public bool HideDisabledUsersInBackoffice => _configuration.GetValue("Umbraco:CMS:Security:HideDisabledUsersInBackoffice") ?? false;
- public bool AllowPasswordReset => _configuration.GetValue("Umbraco:CMS:Security:AllowPasswordResetAllowPasswordReset") ?? true;
- public string AuthCookieName => _configuration.GetValue("Umbraco:CMS:Security:AuthCookieName") ?? "UMB_UCONTEXT";
- public string AuthCookieDomain => _configuration.GetValue("Umbraco:CMS:Security:AuthCookieDomain") ?? null;
- public bool UsernameIsEmail => _configuration.GetValue("Umbraco:CMS:Security:UsernameIsEmail") ?? true;
+
+ public bool KeepUserLoggedIn => _configuration.GetValue("Umbraco:CMS:Security:KeepUserLoggedIn", true);
+
+ public bool HideDisabledUsersInBackoffice =>
+ _configuration.GetValue("Umbraco:CMS:Security:HideDisabledUsersInBackoffice", false);
+
+ public bool AllowPasswordReset =>
+ _configuration.GetValue("Umbraco:CMS:Security:AllowPasswordResetAllowPasswordReset", true);
+
+ public string AuthCookieName =>
+ _configuration.GetValue("Umbraco:CMS:Security:AuthCookieName", "UMB_UCONTEXT");
+
+ public string AuthCookieDomain =>
+ _configuration.GetValue("Umbraco:CMS:Security:AuthCookieDomain");
+
+ public bool UsernameIsEmail => _configuration.GetValue("Umbraco:CMS:Security:UsernameIsEmail", true);
}
}
diff --git a/src/Umbraco.Configuration/Models/TourSettings.cs b/src/Umbraco.Configuration/Models/TourSettings.cs
index 20358bd320..a859e4a490 100644
--- a/src/Umbraco.Configuration/Models/TourSettings.cs
+++ b/src/Umbraco.Configuration/Models/TourSettings.cs
@@ -6,13 +6,14 @@ namespace Umbraco.Configuration.Models
internal class TourSettings : ITourSettings
{
private readonly IConfiguration _configuration;
+
public TourSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public bool EnableTours => _configuration.GetValue("Umbraco:CMS:Tours:EnableTours") ?? true;
-
public string Type { get; set; }
+
+ public bool EnableTours => _configuration.GetValue("Umbraco:CMS:Tours:EnableTours", true);
}
}
diff --git a/src/Umbraco.Configuration/Models/TypeFinderSettings.cs b/src/Umbraco.Configuration/Models/TypeFinderSettings.cs
index 114f028b13..0e2aacced2 100644
--- a/src/Umbraco.Configuration/Models/TypeFinderSettings.cs
+++ b/src/Umbraco.Configuration/Models/TypeFinderSettings.cs
@@ -15,5 +15,4 @@ namespace Umbraco.Configuration.Models
public string AssembliesAcceptingLoadExceptions =>
_configuration.GetValue("Umbraco:CMS:TypeFinder:AssembliesAcceptingLoadExceptions");
}
-
}
diff --git a/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs b/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs
index 2b5e01fcd9..d30ab0c1ea 100644
--- a/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs
+++ b/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs
@@ -6,18 +6,32 @@ namespace Umbraco.Configuration.Models
internal class UserPasswordConfigurationSettings : IUserPasswordConfiguration
{
private readonly IConfiguration _configuration;
+
public UserPasswordConfigurationSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public int RequiredLength => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequiredLength") ?? 10;
- public bool RequireNonLetterOrDigit => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireNonLetterOrDigit") ?? false;
- public bool RequireDigit => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireDigit") ?? false;
- public bool RequireLowercase => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireLowercase") ?? false;
- public bool RequireUppercase => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireUppercase") ?? false;
- public bool UseLegacyEncoding => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:UseLegacyEncoding") ?? false;
- public string HashAlgorithmType => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:HashAlgorithmType") ?? "HMACSHA256";
- public int MaxFailedAccessAttemptsBeforeLockout => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:MaxFailedAccessAttemptsBeforeLockout") ?? 5;
+ public int RequiredLength => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequiredLength", 10);
+
+ public bool RequireNonLetterOrDigit =>
+ _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireNonLetterOrDigit", false);
+
+ public bool RequireDigit => _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireDigit", false);
+
+ public bool RequireLowercase =>
+ _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireLowercase", false);
+
+ public bool RequireUppercase =>
+ _configuration.GetValue("Umbraco:CMS:Security:UserPassword:RequireUppercase", false);
+
+ public bool UseLegacyEncoding =>
+ _configuration.GetValue("Umbraco:CMS:Security:UserPassword:UseLegacyEncoding", false);
+
+ public string HashAlgorithmType =>
+ _configuration.GetValue("Umbraco:CMS:Security:UserPassword:HashAlgorithmType", "HMACSHA256");
+
+ public int MaxFailedAccessAttemptsBeforeLockout =>
+ _configuration.GetValue("Umbraco:CMS:Security:UserPassword:MaxFailedAccessAttemptsBeforeLockout", 5);
}
}
diff --git a/src/Umbraco.Configuration/Models/WebRoutingSettings.cs b/src/Umbraco.Configuration/Models/WebRoutingSettings.cs
index cb78373b74..c2670de511 100644
--- a/src/Umbraco.Configuration/Models/WebRoutingSettings.cs
+++ b/src/Umbraco.Configuration/Models/WebRoutingSettings.cs
@@ -4,21 +4,37 @@ using Umbraco.Core.Models.PublishedContent;
namespace Umbraco.Configuration.Models
{
- internal class WebRoutingSettings : IWebRoutingSettings
+ internal class WebRoutingSettings : IWebRoutingSettings
{
private readonly IConfiguration _configuration;
+
public WebRoutingSettings(IConfiguration configuration)
{
_configuration = configuration;
}
- public bool TrySkipIisCustomErrors => _configuration.GetValue("Umbraco:CMS:WebRouting:TrySkipIisCustomErrors") ?? false;
- public bool InternalRedirectPreservesTemplate => _configuration.GetValue("Umbraco:CMS:WebRouting:InternalRedirectPreservesTemplate") ?? false;
- public bool DisableAlternativeTemplates => _configuration.GetValue("Umbraco:CMS:WebRouting:DisableAlternativeTemplates") ?? false;
- public bool ValidateAlternativeTemplates => _configuration.GetValue("Umbraco:CMS:WebRouting:ValidateAlternativeTemplates") ?? false;
- public bool DisableFindContentByIdPath => _configuration.GetValue("Umbraco:CMS:WebRouting:DisableFindContentByIdPath") ?? false;
- public bool DisableRedirectUrlTracking => _configuration.GetValue("Umbraco:CMS:WebRouting:DisableRedirectUrlTracking") ?? false;
- public string UrlProviderMode => _configuration.GetValue("Umbraco:CMS:WebRouting:UrlProviderMode") ?? UrlMode.Auto.ToString();
- public string UmbracoApplicationUrl => _configuration.GetValue("Umbraco:CMS:WebRouting:UmbracoApplicationUrl") ?? null;
+ public bool TrySkipIisCustomErrors =>
+ _configuration.GetValue("Umbraco:CMS:WebRouting:TrySkipIisCustomErrors", false);
+
+ public bool InternalRedirectPreservesTemplate =>
+ _configuration.GetValue("Umbraco:CMS:WebRouting:InternalRedirectPreservesTemplate", false);
+
+ public bool DisableAlternativeTemplates =>
+ _configuration.GetValue("Umbraco:CMS:WebRouting:DisableAlternativeTemplates", false);
+
+ public bool ValidateAlternativeTemplates =>
+ _configuration.GetValue("Umbraco:CMS:WebRouting:ValidateAlternativeTemplates", false);
+
+ public bool DisableFindContentByIdPath =>
+ _configuration.GetValue("Umbraco:CMS:WebRouting:DisableFindContentByIdPath", false);
+
+ public bool DisableRedirectUrlTracking =>
+ _configuration.GetValue("Umbraco:CMS:WebRouting:DisableRedirectUrlTracking", false);
+
+ public string UrlProviderMode =>
+ _configuration.GetValue("Umbraco:CMS:WebRouting:UrlProviderMode", UrlMode.Auto.ToString());
+
+ public string UmbracoApplicationUrl =>
+ _configuration.GetValue("Umbraco:CMS:WebRouting:UmbracoApplicationUrl");
}
}