From 1b4b17cbaefccb8d9a90b090cfb901c9a1918a27 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Mon, 14 Sep 2020 09:56:48 +0200 Subject: [PATCH] More clean up of old configs --- .../DisabledHealthCheckElement.cs | 42 ---- .../DisabledHealthChecksElementCollection.cs | 40 ---- .../HealthCheckNotificationSettingsElement.cs | 85 -------- .../HealthChecks/HealthChecksSection.cs | 24 --- .../HealthChecks/NotificationMethodElement.cs | 85 -------- .../NotificationMethodSettingsElement.cs | 28 --- ...ficationMethodSettingsElementCollection.cs | 80 ------- .../NotificationMethodsElementCollection.cs | 80 ------- .../Legacy/CoreDebugSettings.cs | 21 -- .../Legacy/ExceptionFilterSettings.cs | 18 -- .../Legacy/GlobalSettings.cs | 3 +- .../Legacy/HealthChecksSettings.cs | 26 --- .../Legacy/HostingSettings.cs | 54 ----- .../MemberPasswordConfigurationSettings.cs | 16 -- .../Legacy/ModelsBuilderConfig.cs | 200 ------------------ .../Legacy/RequestHandlerSettings.cs | 15 -- .../Legacy/RuntimeSettings.cs | 29 --- .../Legacy/SecuritySettings.cs | 14 -- .../Legacy/SmtpSettings.cs | 18 -- .../Legacy/TypeFinderSettings.cs | 17 -- .../UserPasswordConfigurationSettings.cs | 15 -- .../Legacy/WebRoutingSettings.cs | 16 -- .../Models/CoreDebugSettings.cs | 23 -- .../Models/ExceptionFilterSettings.cs | 19 -- .../Models/GlobalSettings.cs | 24 +-- .../Models/HealthChecksSettings.cs | 105 --------- .../Models/HostingSettings.cs | 29 --- .../Models/ImagingSettings.cs | 26 --- .../MemberPasswordConfigurationSettings.cs | 38 ---- .../Models/ModelsBuilderConfig.cs | 86 -------- .../Models/RequestHandlerSettings.cs | 87 -------- .../Models/RuntimeSettings.cs | 19 -- .../Models/SecuritySettings.cs | 33 --- .../Models/TypeFinderSettings.cs | 20 -- .../UserPasswordConfigurationSettings.cs | 36 ---- .../Models/WebRoutingSettings.cs | 42 ---- .../UmbracoSettings/RequestHandlerElement.cs | 96 --------- .../UmbracoSettings/SecurityElement.cs | 63 ------ .../UmbracoSettings/UmbracoSettingsSection.cs | 8 - .../UmbracoSettings/WebRoutingElement.cs | 31 --- .../IHealthCheckNotificationSettings.cs | 13 -- .../HealthChecks/IHealthChecksSettings.cs | 10 - .../Configuration/ICoreDebugSettings.cs | 17 -- .../Configuration/IExceptionFilterSettings.cs | 7 - .../Configuration/IGlobalSettings.cs | 6 +- .../Configuration/IHostingSettings.cs | 24 --- .../Configuration/IImagingSettings.cs | 12 -- .../Configuration/IModelsBuilderConfig.cs | 14 -- .../Configuration/IRuntimeSettings.cs | 8 - .../Configuration/ISmtpSettings.cs | 15 -- .../IRequestHandlerSettings.cs | 15 -- .../UmbracoSettings/ISecuritySettings.cs | 27 --- .../UmbracoSettings/IWebRoutingSettings.cs | 21 -- .../ConfigModelConversionsFromLegacy.cs | 15 -- .../ConfigModelConversionsToLegacy.cs | 20 +- .../HealthCheck/HealthCheckResults.cs | 2 +- .../Compose/ModelsBuilderComponent.cs | 3 +- src/Umbraco.Tests.Common/SettingsForTests.cs | 44 ---- src/Umbraco.Tests.Common/TestHelperBase.cs | 5 +- .../ContentElementDefaultTests.cs | 70 ------ .../UmbracoSettings/ContentElementTests.cs | 117 ---------- .../RequestHandlerElementDefaultTests.cs | 10 - .../RequestHandlerElementTests.cs | 33 --- .../SecurityElementDefaultTests.cs | 10 - .../UmbracoSettings/SecurityElementTests.cs | 123 ----------- .../UmbracoSettings/UmbracoSettingsTests.cs | 45 ---- .../WebRoutingElementDefaultTests.cs | 40 ---- .../UmbracoSettings/WebRoutingElementTests.cs | 26 --- .../Umbraco.Core/Routing/UriUtilityTests.cs | 2 - .../ModelsBuilder/ConfigTests.cs | 51 ----- .../Configurations/GlobalSettingsTests.cs | 9 +- .../Runtimes/CoreRuntimeTests.cs | 8 +- .../TestHelpers/SettingsForTests.cs | 11 +- src/Umbraco.Tests/TestHelpers/TestHelper.cs | 9 +- src/Umbraco.Tests/Testing/UmbracoTestBase.cs | 7 +- .../AspNet/AspNetBackOfficeInfo.cs | 8 +- .../AspNet/AspNetHostingEnvironment.cs | 12 +- .../Editors/AuthenticationController.cs | 8 +- .../Editors/BackOfficeController.cs | 12 +- .../Editors/BackOfficeServerVariables.cs | 14 +- .../Mvc/ModelBindingExceptionFilter.cs | 4 +- .../BackOfficeCookieAuthenticationProvider.cs | 10 +- .../Security/GetUserSecondsMiddleWare.cs | 8 +- src/Umbraco.Web/UmbracoApplicationBase.cs | 12 +- src/Umbraco.Web/UmbracoDefaultOwinStartup.cs | 4 +- .../CDF/ClientDependencyComponent.cs | 14 +- 86 files changed, 93 insertions(+), 2573 deletions(-) delete mode 100644 src/Umbraco.Configuration/HealthChecks/DisabledHealthCheckElement.cs delete mode 100644 src/Umbraco.Configuration/HealthChecks/DisabledHealthChecksElementCollection.cs delete mode 100644 src/Umbraco.Configuration/HealthChecks/HealthCheckNotificationSettingsElement.cs delete mode 100644 src/Umbraco.Configuration/HealthChecks/HealthChecksSection.cs delete mode 100644 src/Umbraco.Configuration/HealthChecks/NotificationMethodElement.cs delete mode 100644 src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElement.cs delete mode 100644 src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElementCollection.cs delete mode 100644 src/Umbraco.Configuration/HealthChecks/NotificationMethodsElementCollection.cs delete mode 100644 src/Umbraco.Configuration/Legacy/CoreDebugSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/ExceptionFilterSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/HealthChecksSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/HostingSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/MemberPasswordConfigurationSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/ModelsBuilderConfig.cs delete mode 100644 src/Umbraco.Configuration/Legacy/RequestHandlerSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/RuntimeSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/SecuritySettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/SmtpSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/TypeFinderSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/UserPasswordConfigurationSettings.cs delete mode 100644 src/Umbraco.Configuration/Legacy/WebRoutingSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/CoreDebugSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/ExceptionFilterSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/HealthChecksSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/HostingSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/ImagingSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs delete mode 100644 src/Umbraco.Configuration/Models/RequestHandlerSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/RuntimeSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/SecuritySettings.cs delete mode 100644 src/Umbraco.Configuration/Models/TypeFinderSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs delete mode 100644 src/Umbraco.Configuration/Models/WebRoutingSettings.cs delete mode 100644 src/Umbraco.Configuration/UmbracoSettings/RequestHandlerElement.cs delete mode 100644 src/Umbraco.Configuration/UmbracoSettings/SecurityElement.cs delete mode 100644 src/Umbraco.Configuration/UmbracoSettings/WebRoutingElement.cs delete mode 100644 src/Umbraco.Core/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/HealthChecks/IHealthChecksSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/ICoreDebugSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/IExceptionFilterSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/IHostingSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/IImagingSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/IModelsBuilderConfig.cs delete mode 100644 src/Umbraco.Core/Configuration/IRuntimeSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/ISmtpSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/UmbracoSettings/IRequestHandlerSettings.cs delete mode 100644 src/Umbraco.Core/Configuration/UmbracoSettings/ISecuritySettings.cs delete mode 100644 src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSettings.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs delete mode 100644 src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs delete mode 100644 src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/ConfigTests.cs diff --git a/src/Umbraco.Configuration/HealthChecks/DisabledHealthCheckElement.cs b/src/Umbraco.Configuration/HealthChecks/DisabledHealthCheckElement.cs deleted file mode 100644 index 01392da614..0000000000 --- a/src/Umbraco.Configuration/HealthChecks/DisabledHealthCheckElement.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.Linq; -using System.Text; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - public class DisabledHealthCheckElement : ConfigurationElement, IDisabledHealthCheck - { - private const string IdKey = "id"; - private const string DisabledOnKey = "disabledOn"; - private const string DisabledByKey = "disabledBy"; - - [ConfigurationProperty(IdKey, IsKey = true, IsRequired = true)] - public Guid Id - { - get - { - return ((Guid)(base[IdKey])); - } - } - - [ConfigurationProperty(DisabledOnKey, IsKey = false, IsRequired = false)] - public DateTime DisabledOn - { - get - { - return ((DateTime)(base[DisabledOnKey])); - } - } - - [ConfigurationProperty(DisabledByKey, IsKey = false, IsRequired = false)] - public int DisabledBy - { - get - { - return ((int)(base[DisabledByKey])); - } - } - } -} diff --git a/src/Umbraco.Configuration/HealthChecks/DisabledHealthChecksElementCollection.cs b/src/Umbraco.Configuration/HealthChecks/DisabledHealthChecksElementCollection.cs deleted file mode 100644 index 87600b8ae3..0000000000 --- a/src/Umbraco.Configuration/HealthChecks/DisabledHealthChecksElementCollection.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System.Collections.Generic; -using System.Configuration; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - [ConfigurationCollection(typeof(DisabledHealthCheckElement), AddItemName = "check")] - public class DisabledHealthChecksElementCollection : ConfigurationElementCollection, IEnumerable - { - protected override ConfigurationElement CreateNewElement() - { - return new DisabledHealthCheckElement(); - } - - protected override object GetElementKey(ConfigurationElement element) - { - return ((DisabledHealthCheckElement)(element)).Id; - } - - public new DisabledHealthCheckElement this[string key] - { - get - { - return (DisabledHealthCheckElement)BaseGet(key); - } - } - - IEnumerator IEnumerable.GetEnumerator() - { - for (var i = 0; i < Count; i++) - { - yield return BaseGet(i) as DisabledHealthCheckElement; - } - } - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - } -} diff --git a/src/Umbraco.Configuration/HealthChecks/HealthCheckNotificationSettingsElement.cs b/src/Umbraco.Configuration/HealthChecks/HealthCheckNotificationSettingsElement.cs deleted file mode 100644 index 1ccf3e357b..0000000000 --- a/src/Umbraco.Configuration/HealthChecks/HealthCheckNotificationSettingsElement.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - public class HealthCheckNotificationSettingsElement : ConfigurationElement, IHealthCheckNotificationSettings - { - private const string EnabledKey = "enabled"; - private const string FirstRunTimeKey = "firstRunTime"; - private const string PeriodKey = "periodInHours"; - private const string NotificationMethodsKey = "notificationMethods"; - private const string DisabledChecksKey = "disabledChecks"; - - [ConfigurationProperty(EnabledKey, IsRequired = true)] - public bool Enabled - { - get - { - return (bool)base[EnabledKey]; - } - } - - [ConfigurationProperty(FirstRunTimeKey, IsRequired = false)] - public string FirstRunTime - { - get - { - return (string)base[FirstRunTimeKey]; - } - } - - [ConfigurationProperty(PeriodKey, IsRequired = true)] - public int PeriodInHours - { - get - { - return (int)base[PeriodKey]; - } - } - - [ConfigurationProperty(NotificationMethodsKey, IsDefaultCollection = true, IsRequired = false)] - public NotificationMethodsElementCollection NotificationMethods - { - get - { - return (NotificationMethodsElementCollection)base[NotificationMethodsKey]; - } - } - - [ConfigurationProperty(DisabledChecksKey, IsDefaultCollection = false, IsRequired = false)] - public DisabledHealthChecksElementCollection DisabledChecks - { - get - { - return (DisabledHealthChecksElementCollection)base[DisabledChecksKey]; - } - } - - bool IHealthCheckNotificationSettings.Enabled - { - get { return Enabled; } - } - - string IHealthCheckNotificationSettings.FirstRunTime - { - get { return FirstRunTime; } - } - - int IHealthCheckNotificationSettings.PeriodInHours - { - get { return PeriodInHours; } - } - - IReadOnlyDictionary IHealthCheckNotificationSettings.NotificationMethods - { - get { return NotificationMethods; } - } - - IEnumerable IHealthCheckNotificationSettings.DisabledChecks - { - get { return DisabledChecks; } - } - } -} diff --git a/src/Umbraco.Configuration/HealthChecks/HealthChecksSection.cs b/src/Umbraco.Configuration/HealthChecks/HealthChecksSection.cs deleted file mode 100644 index 373d846567..0000000000 --- a/src/Umbraco.Configuration/HealthChecks/HealthChecksSection.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Configuration; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - public class HealthChecksSection : ConfigurationSection - { - private const string DisabledChecksKey = "disabledChecks"; - private const string NotificationSettingsKey = "notificationSettings"; - - [ConfigurationProperty(DisabledChecksKey)] - public DisabledHealthChecksElementCollection DisabledChecks - { - get { return ((DisabledHealthChecksElementCollection)(base[DisabledChecksKey])); } - } - - [ConfigurationProperty(NotificationSettingsKey, IsRequired = true)] - public HealthCheckNotificationSettingsElement NotificationSettings - { - get { return ((HealthCheckNotificationSettingsElement)(base[NotificationSettingsKey])); } - } - - } -} diff --git a/src/Umbraco.Configuration/HealthChecks/NotificationMethodElement.cs b/src/Umbraco.Configuration/HealthChecks/NotificationMethodElement.cs deleted file mode 100644 index cbbe5e8b02..0000000000 --- a/src/Umbraco.Configuration/HealthChecks/NotificationMethodElement.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - public class NotificationMethodElement : ConfigurationElement, INotificationMethod - { - private const string AliasKey = "alias"; - private const string EnabledKey = "enabled"; - private const string VerbosityKey = "verbosity"; - private const string FailureonlyKey = "failureOnly"; - private const string SettingsKey = "settings"; - - [ConfigurationProperty(AliasKey, IsKey = true, IsRequired = true)] - public string Alias - { - get - { - return (string)base[AliasKey]; - } - } - - [ConfigurationProperty(EnabledKey, IsKey = true, IsRequired = true)] - public bool Enabled - { - get - { - return (bool)base[EnabledKey]; - } - } - - [ConfigurationProperty(VerbosityKey, IsRequired = true)] - public HealthCheckNotificationVerbosity Verbosity - { - get - { - return (HealthCheckNotificationVerbosity)base[VerbosityKey]; - } - } - - [ConfigurationProperty(FailureonlyKey, IsRequired = false)] - public bool FailureOnly - { - get - { - return (bool)base[FailureonlyKey]; - } - } - - [ConfigurationProperty(SettingsKey, IsDefaultCollection = true, IsRequired = false)] - public NotificationMethodSettingsElementCollection Settings - { - get - { - return (NotificationMethodSettingsElementCollection)base[SettingsKey]; - } - } - - string INotificationMethod.Alias - { - get { return Alias; } - } - - bool INotificationMethod.Enabled - { - get { return Enabled; } - } - - HealthCheckNotificationVerbosity INotificationMethod.Verbosity - { - get { return Verbosity; } - } - - bool INotificationMethod.FailureOnly - { - get { return FailureOnly; } - } - - IReadOnlyDictionary INotificationMethod.Settings - { - get { return Settings; } - } - } -} diff --git a/src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElement.cs b/src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElement.cs deleted file mode 100644 index ed42eb7221..0000000000 --- a/src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElement.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Configuration; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - public class NotificationMethodSettingsElement : ConfigurationElement, INotificationMethodSettings - { - private const string KeyKey = "key"; - private const string ValueKey = "value"; - - [ConfigurationProperty(KeyKey, IsKey = true, IsRequired = true)] - public string Key - { - get - { - return (string)base[KeyKey]; - } - } - - [ConfigurationProperty(ValueKey, IsRequired = true)] - public string Value - { - get - { - return (string)base[ValueKey]; - } - } - } -} diff --git a/src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElementCollection.cs b/src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElementCollection.cs deleted file mode 100644 index 226278ab61..0000000000 --- a/src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElementCollection.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.Linq; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - [ConfigurationCollection(typeof(NotificationMethodSettingsElement), AddItemName = "add")] - public class NotificationMethodSettingsElementCollection : ConfigurationElementCollection, IEnumerable, IReadOnlyDictionary - { - protected override ConfigurationElement CreateNewElement() - { - return new NotificationMethodSettingsElement(); - } - - protected override object GetElementKey(ConfigurationElement element) - { - return ((NotificationMethodSettingsElement)(element)).Key; - } - - IEnumerator> IEnumerable>.GetEnumerator() - { - for (var i = 0; i < Count; i++) - { - var val = (NotificationMethodSettingsElement)BaseGet(i); - var key = (string)BaseGetKey(i); - yield return new KeyValuePair(key, val); - } - } - - IEnumerator IEnumerable.GetEnumerator() - { - for (var i = 0; i < Count; i++) - { - yield return (NotificationMethodSettingsElement)BaseGet(i); - } - } - - bool IReadOnlyDictionary.ContainsKey(string key) - { - return ((IReadOnlyDictionary)this).Keys.Any(x => x == key); - } - - bool IReadOnlyDictionary.TryGetValue(string key, out INotificationMethodSettings value) - { - try - { - var val = (NotificationMethodSettingsElement)BaseGet(key); - value = val; - return true; - } - catch (Exception) - { - value = null; - return false; - } - } - - INotificationMethodSettings IReadOnlyDictionary.this[string key] - { - get { return (NotificationMethodSettingsElement)BaseGet(key); } - } - - IEnumerable IReadOnlyDictionary.Keys - { - get { return BaseGetAllKeys().Cast(); } - } - - IEnumerable IReadOnlyDictionary.Values - { - get - { - for (var i = 0; i < Count; i++) - { - yield return (NotificationMethodSettingsElement)BaseGet(i); - } - } - } - } -} diff --git a/src/Umbraco.Configuration/HealthChecks/NotificationMethodsElementCollection.cs b/src/Umbraco.Configuration/HealthChecks/NotificationMethodsElementCollection.cs deleted file mode 100644 index ee7e135961..0000000000 --- a/src/Umbraco.Configuration/HealthChecks/NotificationMethodsElementCollection.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.Linq; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - [ConfigurationCollection(typeof(NotificationMethodElement), AddItemName = "notificationMethod")] - public class NotificationMethodsElementCollection : ConfigurationElementCollection, IEnumerable, IReadOnlyDictionary - { - protected override ConfigurationElement CreateNewElement() - { - return new NotificationMethodElement(); - } - - protected override object GetElementKey(ConfigurationElement element) - { - return ((NotificationMethodElement)(element)).Alias; - } - - IEnumerator> IEnumerable>.GetEnumerator() - { - for (var i = 0; i < Count; i++) - { - var val = (NotificationMethodElement)BaseGet(i); - var key = (string)BaseGetKey(i); - yield return new KeyValuePair(key, val); - } - } - - IEnumerator IEnumerable.GetEnumerator() - { - for (var i = 0; i < Count; i++) - { - yield return (NotificationMethodElement)BaseGet(i); - } - } - - bool IReadOnlyDictionary.ContainsKey(string key) - { - return ((IReadOnlyDictionary) this).Keys.Any(x => x == key); - } - - bool IReadOnlyDictionary.TryGetValue(string key, out INotificationMethod value) - { - try - { - var val = (NotificationMethodElement)BaseGet(key); - value = val; - return true; - } - catch (Exception) - { - value = null; - return false; - } - } - - INotificationMethod IReadOnlyDictionary.this[string key] - { - get { return (NotificationMethodElement)BaseGet(key); } - } - - IEnumerable IReadOnlyDictionary.Keys - { - get { return BaseGetAllKeys().Cast(); } - } - - IEnumerable IReadOnlyDictionary.Values - { - get - { - for (var i = 0; i < Count; i++) - { - yield return (NotificationMethodElement)BaseGet(i); - } - } - } - } -} diff --git a/src/Umbraco.Configuration/Legacy/CoreDebugSettings.cs b/src/Umbraco.Configuration/Legacy/CoreDebugSettings.cs deleted file mode 100644 index 4902d4489f..0000000000 --- a/src/Umbraco.Configuration/Legacy/CoreDebugSettings.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Configuration; - -namespace Umbraco.Core.Configuration -{ - public class CoreDebugSettings : ICoreDebugSettings - { - public CoreDebugSettings() - { - var appSettings = ConfigurationManager.AppSettings; - LogUncompletedScopes = string.Equals("true", appSettings[Constants.AppSettings.Debug.LogUncompletedScopes], StringComparison.OrdinalIgnoreCase); - DumpOnTimeoutThreadAbort = string.Equals("true", appSettings[Constants.AppSettings.Debug.DumpOnTimeoutThreadAbort], StringComparison.OrdinalIgnoreCase); - } - - /// - public bool LogUncompletedScopes { get; } - - /// - public bool DumpOnTimeoutThreadAbort { get; } - } -} diff --git a/src/Umbraco.Configuration/Legacy/ExceptionFilterSettings.cs b/src/Umbraco.Configuration/Legacy/ExceptionFilterSettings.cs deleted file mode 100644 index 50e2207485..0000000000 --- a/src/Umbraco.Configuration/Legacy/ExceptionFilterSettings.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Configuration; -using Umbraco.Core.Configuration; - -namespace Umbraco.Configuration.Legacy -{ - public class ExceptionFilterSettings : IExceptionFilterSettings - { - public ExceptionFilterSettings() - { - if (bool.TryParse(ConfigurationManager.AppSettings["Umbraco.Web.DisableModelBindingExceptionFilter"], - out var disabled)) - { - Disabled = disabled; - } - } - public bool Disabled { get; } - } -} diff --git a/src/Umbraco.Configuration/Legacy/GlobalSettings.cs b/src/Umbraco.Configuration/Legacy/GlobalSettings.cs index fabe95f5bd..8dee6e79dc 100644 --- a/src/Umbraco.Configuration/Legacy/GlobalSettings.cs +++ b/src/Umbraco.Configuration/Legacy/GlobalSettings.cs @@ -5,6 +5,7 @@ using System.Net.Mail; using System.Xml.Linq; using Umbraco.Composing; using Umbraco.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; namespace Umbraco.Core.Configuration.Legacy @@ -61,7 +62,7 @@ namespace Umbraco.Core.Configuration.Legacy } } - public ISmtpSettings SmtpSettings + public SmtpSettings SmtpSettings { get { diff --git a/src/Umbraco.Configuration/Legacy/HealthChecksSettings.cs b/src/Umbraco.Configuration/Legacy/HealthChecksSettings.cs deleted file mode 100644 index 23385d1378..0000000000 --- a/src/Umbraco.Configuration/Legacy/HealthChecksSettings.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using System.Configuration; -using Umbraco.Core.Configuration.HealthChecks; - -namespace Umbraco.Core.Configuration.Legacy -{ - public class HealthChecksSettings : IHealthChecksSettings - { - private HealthChecksSection _healthChecksSection; - - private HealthChecksSection HealthChecksSection - { - get - { - if (_healthChecksSection is null) - { - _healthChecksSection = ConfigurationManager.GetSection("umbracoConfiguration/HealthChecks") as HealthChecksSection; - } - return _healthChecksSection; - } - } - - public IEnumerable DisabledChecks => HealthChecksSection.DisabledChecks; - public IHealthCheckNotificationSettings NotificationSettings => HealthChecksSection.NotificationSettings; - } -} diff --git a/src/Umbraco.Configuration/Legacy/HostingSettings.cs b/src/Umbraco.Configuration/Legacy/HostingSettings.cs deleted file mode 100644 index 1858e8a4a4..0000000000 --- a/src/Umbraco.Configuration/Legacy/HostingSettings.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System.Configuration; - -namespace Umbraco.Core.Configuration.Legacy -{ - public class HostingSettings : IHostingSettings - { - private bool? _debugMode; - - /// - public LocalTempStorage LocalTempStorageLocation - { - get - { - var setting = ConfigurationManager.AppSettings[Constants.AppSettings.LocalTempStorage]; - if (!string.IsNullOrWhiteSpace(setting)) - return Enum.Parse(setting); - - return LocalTempStorage.Default; - } - } - - public string ApplicationVirtualPath => null; - - /// - /// Gets a value indicating whether umbraco is running in [debug mode]. - /// - /// true if [debug mode]; otherwise, false. - public bool DebugMode - { - get - { - if (!_debugMode.HasValue) - { - try - { - if (ConfigurationManager.GetSection("system.web/compilation") is ConfigurationSection compilation) - { - var debugElement = compilation.ElementInformation.Properties["debug"]; - - _debugMode = debugElement != null && (debugElement.Value is bool debug && debug); - - } - } - catch - { - _debugMode = false; - } - } - - return _debugMode.GetValueOrDefault(); - } - } - } -} diff --git a/src/Umbraco.Configuration/Legacy/MemberPasswordConfigurationSettings.cs b/src/Umbraco.Configuration/Legacy/MemberPasswordConfigurationSettings.cs deleted file mode 100644 index e42b02de73..0000000000 --- a/src/Umbraco.Configuration/Legacy/MemberPasswordConfigurationSettings.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Umbraco.Core.Configuration; - -namespace Umbraco.Configuration.Implementations -{ - internal class MemberPasswordConfigurationSettings : ConfigurationManagerConfigBase, IMemberPasswordConfiguration - { - public int RequiredLength => UmbracoSettingsSection.Security.UserPasswordConfiguration.RequiredLength; - public bool RequireNonLetterOrDigit => UmbracoSettingsSection.Security.UserPasswordConfiguration.RequireNonLetterOrDigit; - public bool RequireDigit => UmbracoSettingsSection.Security.UserPasswordConfiguration.RequireDigit; - public bool RequireLowercase=> UmbracoSettingsSection.Security.UserPasswordConfiguration.RequireLowercase; - public bool RequireUppercase=> UmbracoSettingsSection.Security.UserPasswordConfiguration.RequireUppercase; - public bool UseLegacyEncoding=> UmbracoSettingsSection.Security.UserPasswordConfiguration.UseLegacyEncoding; - public string HashAlgorithmType=> UmbracoSettingsSection.Security.UserPasswordConfiguration.HashAlgorithmType; - public int MaxFailedAccessAttemptsBeforeLockout => UmbracoSettingsSection.Security.UserPasswordConfiguration.MaxFailedAccessAttemptsBeforeLockout; - } -} diff --git a/src/Umbraco.Configuration/Legacy/ModelsBuilderConfig.cs b/src/Umbraco.Configuration/Legacy/ModelsBuilderConfig.cs deleted file mode 100644 index f6395b23b4..0000000000 --- a/src/Umbraco.Configuration/Legacy/ModelsBuilderConfig.cs +++ /dev/null @@ -1,200 +0,0 @@ -using System; -using System.Configuration; -using System.IO; -using System.Threading; -using Umbraco.Core.Configuration; -using Umbraco.Core; -using Umbraco.Core.IO; - -namespace Umbraco.Configuration.Legacy -{ - /// - /// Represents the models builder configuration. - /// - public class ModelsBuilderConfig : IModelsBuilderConfig - { - - private const string Prefix = "Umbraco.ModelsBuilder."; - private object _modelsModelLock; - private bool _modelsModelConfigured; - private ModelsMode _modelsMode; - private object _flagOutOfDateModelsLock; - private bool _flagOutOfDateModelsConfigured; - private bool _flagOutOfDateModels; - - - public string DefaultModelsDirectory => "~/App_Data/Models"; - - /// - /// Initializes a new instance of the class. - /// - public ModelsBuilderConfig() - { - // giant kill switch, default: false - // must be explicitely set to true for anything else to happen - Enable = ConfigurationManager.AppSettings[Prefix + "Enable"] == "true"; - - // ensure defaults are initialized for tests - ModelsNamespace = Constants.ModelsBuilder.DefaultModelsNamespace; - ModelsDirectory = DefaultModelsDirectory; - DebugLevel = 0; - - // stop here, everything is false - if (!Enable) return; - - // default: false - AcceptUnsafeModelsDirectory = ConfigurationManager.AppSettings[Prefix + "AcceptUnsafeModelsDirectory"].InvariantEquals("true"); - - // default: true - EnableFactory = !ConfigurationManager.AppSettings[Prefix + "EnableFactory"].InvariantEquals("false"); - - // default: initialized above with DefaultModelsNamespace const - var value = ConfigurationManager.AppSettings[Prefix + "ModelsNamespace"]; - if (!string.IsNullOrWhiteSpace(value)) - ModelsNamespace = value; - - // default: initialized above with DefaultModelsDirectory const - value = ConfigurationManager.AppSettings[Prefix + "ModelsDirectory"]; - if (!string.IsNullOrWhiteSpace(value)) - { - // GetModelsDirectory will ensure that the path is safe - ModelsDirectory = value; - } - - // default: 0 - value = ConfigurationManager.AppSettings[Prefix + "DebugLevel"]; - if (!string.IsNullOrWhiteSpace(value)) - { - if (!int.TryParse(value, out var debugLevel)) - throw new ConfigurationErrorsException($"Invalid debug level \"{value}\"."); - DebugLevel = debugLevel; - } - - } - - /// - /// Initializes a new instance of the class. - /// - public ModelsBuilderConfig( - bool enable = false, - ModelsMode modelsMode = ModelsMode.Nothing, - string modelsNamespace = null, - bool enableFactory = true, - bool flagOutOfDateModels = true, - string modelsDirectory = null, - bool acceptUnsafeModelsDirectory = false, - int debugLevel = 0) - { - Enable = enable; - _modelsMode = modelsMode; - - ModelsNamespace = string.IsNullOrWhiteSpace(modelsNamespace) ? Constants.ModelsBuilder.DefaultModelsNamespace : modelsNamespace; - EnableFactory = enableFactory; - _flagOutOfDateModels = flagOutOfDateModels; - ModelsDirectory = string.IsNullOrWhiteSpace(modelsDirectory) ? DefaultModelsDirectory : modelsDirectory; - AcceptUnsafeModelsDirectory = acceptUnsafeModelsDirectory; - DebugLevel = debugLevel; - } - - - - /// - /// Gets a value indicating whether the whole models experience is enabled. - /// - /// - /// 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 { get; } - - /// - /// Gets the models mode. - /// - public ModelsMode ModelsMode => - LazyInitializer.EnsureInitialized(ref _modelsMode, ref _modelsModelConfigured, ref _modelsModelLock, () => - { - // mode - var modelsMode = ConfigurationManager.AppSettings[Prefix + "ModelsMode"]; - if (string.IsNullOrWhiteSpace(modelsMode)) return ModelsMode.Nothing; //default - switch (modelsMode) - { - case nameof(ModelsMode.Nothing): - return ModelsMode.Nothing; - case nameof(ModelsMode.PureLive): - return ModelsMode.PureLive; - case nameof(ModelsMode.AppData): - return ModelsMode.AppData; - case nameof(ModelsMode.LiveAppData): - return ModelsMode.LiveAppData; - default: - throw new ConfigurationErrorsException($"ModelsMode \"{modelsMode}\" is not a valid mode." + " Note that modes are case-sensitive. Possible values are: " + string.Join(", ", Enum.GetNames(typeof(ModelsMode)))); - } - }); - - /// - /// Gets a value indicating whether system.web/compilation/@debug is true. - /// - public bool IsDebug - { - get - { - if (ConfigurationManager.GetSection("system.web/compilation") is ConfigurationSection section && - bool.TryParse(section.ElementInformation.Properties["debug"].Value.ToString(), out var isDebug)) - { - return isDebug; - } - - return false; - } - } - - /// - /// 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 { get; } - - /// - /// 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 { get; } - - /// - /// 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 - => LazyInitializer.EnsureInitialized(ref _flagOutOfDateModels, ref _flagOutOfDateModelsConfigured, ref _flagOutOfDateModelsLock, () => - { - var flagOutOfDateModels = !ConfigurationManager.AppSettings[Prefix + "FlagOutOfDateModels"].InvariantEquals("false"); - if (ModelsMode == ModelsMode.Nothing || ModelsMode.IsLive()) - { - flagOutOfDateModels = false; - } - - return flagOutOfDateModels; - }); - - /// - /// Gets the models directory. - /// - /// Default is ~/App_Data/Models but that can be changed. - public string ModelsDirectory { get; } - - /// - /// 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 { get; } - - /// - /// 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 { get; } - } -} diff --git a/src/Umbraco.Configuration/Legacy/RequestHandlerSettings.cs b/src/Umbraco.Configuration/Legacy/RequestHandlerSettings.cs deleted file mode 100644 index 1c54f4d475..0000000000 --- a/src/Umbraco.Configuration/Legacy/RequestHandlerSettings.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Umbraco.Core; -using Umbraco.Core.Configuration.UmbracoSettings; - -namespace Umbraco.Configuration.Implementations -{ - internal class RequestHandlerSettings : ConfigurationManagerConfigBase, IRequestHandlerSettings - { - public bool AddTrailingSlash => UmbracoSettingsSection?.RequestHandler?.AddTrailingSlash ?? true; - public bool ConvertUrlsToAscii => UmbracoSettingsSection?.RequestHandler?.UrlReplacing?.ConvertUrlsToAscii.InvariantEquals("true") ?? false; - public bool TryConvertUrlsToAscii => UmbracoSettingsSection?.RequestHandler?.UrlReplacing?.ConvertUrlsToAscii.InvariantEquals("try") ?? false; - public IEnumerable CharCollection => UmbracoSettingsSection?.RequestHandler?.UrlReplacing?.CharCollection ?? Enumerable.Empty(); - } -} diff --git a/src/Umbraco.Configuration/Legacy/RuntimeSettings.cs b/src/Umbraco.Configuration/Legacy/RuntimeSettings.cs deleted file mode 100644 index 200642a819..0000000000 --- a/src/Umbraco.Configuration/Legacy/RuntimeSettings.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Configuration; -using Umbraco.Core.Configuration; - -namespace Umbraco.Configuration.Legacy -{ - public class RuntimeSettings : IRuntimeSettings - { - public RuntimeSettings() - { - if (ConfigurationManager.GetSection("system.web/httpRuntime") is ConfigurationSection section) - { - var maxRequestLengthProperty = section.ElementInformation.Properties["maxRequestLength"]; - if (maxRequestLengthProperty != null && maxRequestLengthProperty.Value is int requestLength) - { - MaxRequestLength = requestLength; - } - - var maxQueryStringProperty = section.ElementInformation.Properties["maxQueryStringLength"]; - if (maxQueryStringProperty != null && maxQueryStringProperty.Value is int maxQueryStringLength) - { - MaxQueryStringLength = maxQueryStringLength; - } - } - } - public int? MaxQueryStringLength { get; } - public int? MaxRequestLength { get; } - - } -} diff --git a/src/Umbraco.Configuration/Legacy/SecuritySettings.cs b/src/Umbraco.Configuration/Legacy/SecuritySettings.cs deleted file mode 100644 index b7e39b0608..0000000000 --- a/src/Umbraco.Configuration/Legacy/SecuritySettings.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Umbraco.Core.Configuration.UmbracoSettings; - -namespace Umbraco.Configuration.Implementations -{ - internal class SecuritySettings : ConfigurationManagerConfigBase, ISecuritySettings - { - public bool KeepUserLoggedIn => UmbracoSettingsSection.Security.KeepUserLoggedIn; - public bool HideDisabledUsersInBackoffice => UmbracoSettingsSection.Security.HideDisabledUsersInBackoffice; - public bool AllowPasswordReset => UmbracoSettingsSection.Security.AllowPasswordReset; - public string AuthCookieName => UmbracoSettingsSection.Security.AuthCookieName; - public string AuthCookieDomain => UmbracoSettingsSection.Security.AuthCookieDomain; - public bool UsernameIsEmail => UmbracoSettingsSection.Security.UsernameIsEmail; - } -} diff --git a/src/Umbraco.Configuration/Legacy/SmtpSettings.cs b/src/Umbraco.Configuration/Legacy/SmtpSettings.cs deleted file mode 100644 index dce3d85840..0000000000 --- a/src/Umbraco.Configuration/Legacy/SmtpSettings.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Net.Mail; -using Umbraco.Core.Configuration; - -namespace Umbraco.Configuration -{ - public class SmtpSettings : ISmtpSettings - { - public string From { get; set; } - public string Host { get; set; } - public int Port { get; set; } - public string PickupDirectoryLocation { get; set; } - public SmtpDeliveryMethod DeliveryMethod { get; set; } - - public string Username { get; set; } - - public string Password { get; set; } - } -} diff --git a/src/Umbraco.Configuration/Legacy/TypeFinderSettings.cs b/src/Umbraco.Configuration/Legacy/TypeFinderSettings.cs deleted file mode 100644 index b1009f754b..0000000000 --- a/src/Umbraco.Configuration/Legacy/TypeFinderSettings.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Configuration; -using Umbraco.Core; -using Umbraco.Core.Configuration; - -namespace Umbraco.Configuration.Legacy -{ - public class TypeFinderSettings : ITypeFinderSettings - { - public TypeFinderSettings() - { - AssembliesAcceptingLoadExceptions = ConfigurationManager.AppSettings[ - Constants.AppSettings.AssembliesAcceptingLoadExceptions]; - } - - public string AssembliesAcceptingLoadExceptions { get; } - } -} diff --git a/src/Umbraco.Configuration/Legacy/UserPasswordConfigurationSettings.cs b/src/Umbraco.Configuration/Legacy/UserPasswordConfigurationSettings.cs deleted file mode 100644 index 51dd645c42..0000000000 --- a/src/Umbraco.Configuration/Legacy/UserPasswordConfigurationSettings.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Umbraco.Core.Configuration; -namespace Umbraco.Configuration.Implementations -{ - internal class UserPasswordConfigurationSettings : ConfigurationManagerConfigBase, IUserPasswordConfiguration - { - public int RequiredLength => UmbracoSettingsSection.Security.UserPasswordConfiguration.RequiredLength; - public bool RequireNonLetterOrDigit => UmbracoSettingsSection.Security.UserPasswordConfiguration.RequireNonLetterOrDigit; - public bool RequireDigit => UmbracoSettingsSection.Security.UserPasswordConfiguration.RequireDigit; - public bool RequireLowercase=> UmbracoSettingsSection.Security.UserPasswordConfiguration.RequireLowercase; - public bool RequireUppercase=> UmbracoSettingsSection.Security.UserPasswordConfiguration.RequireUppercase; - public bool UseLegacyEncoding=> UmbracoSettingsSection.Security.UserPasswordConfiguration.UseLegacyEncoding; - public string HashAlgorithmType=> UmbracoSettingsSection.Security.UserPasswordConfiguration.HashAlgorithmType; - public int MaxFailedAccessAttemptsBeforeLockout => UmbracoSettingsSection.Security.UserPasswordConfiguration.MaxFailedAccessAttemptsBeforeLockout; - } -} diff --git a/src/Umbraco.Configuration/Legacy/WebRoutingSettings.cs b/src/Umbraco.Configuration/Legacy/WebRoutingSettings.cs deleted file mode 100644 index cfca66822b..0000000000 --- a/src/Umbraco.Configuration/Legacy/WebRoutingSettings.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Umbraco.Core.Configuration.UmbracoSettings; - -namespace Umbraco.Configuration.Implementations -{ - internal class WebRoutingSettings : ConfigurationManagerConfigBase, IWebRoutingSettings - { - public bool TrySkipIisCustomErrors => UmbracoSettingsSection?.WebRouting?.TrySkipIisCustomErrors ?? false; - public bool InternalRedirectPreservesTemplate => UmbracoSettingsSection?.WebRouting?.InternalRedirectPreservesTemplate ?? false; - public bool DisableAlternativeTemplates => UmbracoSettingsSection?.WebRouting?.DisableAlternativeTemplates ?? false; - public bool ValidateAlternativeTemplates => UmbracoSettingsSection?.WebRouting?.ValidateAlternativeTemplates ?? false; - public bool DisableFindContentByIdPath => UmbracoSettingsSection?.WebRouting?.DisableFindContentByIdPath ?? false; - public bool DisableRedirectUrlTracking => UmbracoSettingsSection?.WebRouting?.DisableRedirectUrlTracking ?? false; - public string UrlProviderMode => UmbracoSettingsSection?.WebRouting?.UrlProviderMode ?? "Auto"; - public string UmbracoApplicationUrl => UmbracoSettingsSection?.WebRouting?.UmbracoApplicationUrl; - } -} diff --git a/src/Umbraco.Configuration/Models/CoreDebugSettings.cs b/src/Umbraco.Configuration/Models/CoreDebugSettings.cs deleted file mode 100644 index 6d6c0eaf0d..0000000000 --- a/src/Umbraco.Configuration/Models/CoreDebugSettings.cs +++ /dev/null @@ -1,23 +0,0 @@ -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) - { - _configuration = configuration; - } - - public bool LogUncompletedScopes => - _configuration.GetValue(Prefix+"LogUncompletedScopes", false); - - public bool DumpOnTimeoutThreadAbort => - _configuration.GetValue(Prefix+"DumpOnTimeoutThreadAbort", false); - } -} diff --git a/src/Umbraco.Configuration/Models/ExceptionFilterSettings.cs b/src/Umbraco.Configuration/Models/ExceptionFilterSettings.cs deleted file mode 100644 index 581daf9f40..0000000000 --- a/src/Umbraco.Configuration/Models/ExceptionFilterSettings.cs +++ /dev/null @@ -1,19 +0,0 @@ -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) - { - _configuration = configuration; - } - - 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 02b73d1196..5dfac1f8a3 100644 --- a/src/Umbraco.Configuration/Models/GlobalSettings.cs +++ b/src/Umbraco.Configuration/Models/GlobalSettings.cs @@ -4,6 +4,7 @@ using System.Net.Mail; using Microsoft.Extensions.Configuration; using Umbraco.Core; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; namespace Umbraco.Configuration.Models { @@ -77,27 +78,6 @@ namespace Umbraco.Configuration.Models public bool IsSmtpServerConfigured => _configuration.GetSection(Constants.Configuration.ConfigGlobalPrefix + "Smtp")?.GetChildren().Any() ?? false; - public ISmtpSettings SmtpSettings => - new SmtpSettingsImpl(_configuration.GetSection(Constants.Configuration.ConfigGlobalPrefix + "Smtp")); - - private class SmtpSettingsImpl : ISmtpSettings - { - private readonly IConfigurationSection _configurationSection; - - public SmtpSettingsImpl(IConfigurationSection configurationSection) - { - _configurationSection = configurationSection; - } - - 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 SmtpDeliveryMethod DeliveryMethod => _configurationSection.GetValue("DeliveryMethod"); - - public string Username => _configurationSection.GetValue("Username"); - - public string Password => _configurationSection.GetValue("Password"); - } + public SmtpSettings SmtpSettings => new SmtpSettings(); } } diff --git a/src/Umbraco.Configuration/Models/HealthChecksSettings.cs b/src/Umbraco.Configuration/Models/HealthChecksSettings.cs deleted file mode 100644 index 1e3751b6aa..0000000000 --- a/src/Umbraco.Configuration/Models/HealthChecksSettings.cs +++ /dev/null @@ -1,105 +0,0 @@ -using System; -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) - { - _configuration = configuration; - } - - public IEnumerable DisabledChecks => _configuration - .GetSection(Prefix+"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(Prefix+"NotificationSettings")); - - private class DisabledHealthCheck : IDisabledHealthCheck - { - public Guid Id { get; set; } - public DateTime DisabledOn { get; set; } - public int DisabledBy { get; set; } - } - - private class HealthCheckNotificationSettings : IHealthCheckNotificationSettings - { - private readonly IConfigurationSection _configurationSection; - - public HealthCheckNotificationSettings(IConfigurationSection configurationSection) - { - _configurationSection = configurationSection; - } - - public bool Enabled => _configurationSection.GetValue("Enabled", false); - public string FirstRunTime => _configurationSection.GetValue("FirstRunTime"); - 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), StringComparer.InvariantCultureIgnoreCase); - - 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) - { - 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 IReadOnlyDictionary Settings => _configurationSection - .GetSection("Settings").GetChildren().ToDictionary(x => x.Key, - x => (INotificationMethodSettings) new NotificationMethodSettings(x.Key, x.Value), StringComparer.InvariantCultureIgnoreCase); - } - - private class NotificationMethodSettings : INotificationMethodSettings - { - public NotificationMethodSettings(string key, string value) - { - Key = key; - Value = value; - } - - public string Key { get; } - public string Value { get; } - } - } -} diff --git a/src/Umbraco.Configuration/Models/HostingSettings.cs b/src/Umbraco.Configuration/Models/HostingSettings.cs deleted file mode 100644 index f0fbcf4cab..0000000000 --- a/src/Umbraco.Configuration/Models/HostingSettings.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Umbraco.Core; -using Umbraco.Core.Configuration; - -namespace Umbraco.Configuration.Models -{ - internal class HostingSettings : IHostingSettings - { - private const string Prefix = Constants.Configuration.ConfigPrefix + "Hosting:"; - private readonly IConfiguration _configuration; - - public HostingSettings(IConfiguration configuration) - { - _configuration = configuration; - } - - /// - public LocalTempStorage LocalTempStorageLocation => - _configuration.GetValue(Prefix+"LocalTempStorage", LocalTempStorage.Default); - - public string ApplicationVirtualPath => null; - - /// - /// Gets a value indicating whether umbraco is running in [debug mode]. - /// - /// true if [debug mode]; otherwise, 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 deleted file mode 100644 index 4a9501b2ba..0000000000 --- a/src/Umbraco.Configuration/Models/ImagingSettings.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Umbraco.Core; -using Umbraco.Core.Configuration; - -namespace Umbraco.Configuration.Models -{ - 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) - { - _configuration = configuration; - } - - 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/MemberPasswordConfigurationSettings.cs b/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs deleted file mode 100644 index 5a8313a351..0000000000 --- a/src/Umbraco.Configuration/Models/MemberPasswordConfigurationSettings.cs +++ /dev/null @@ -1,38 +0,0 @@ -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) - { - _configuration = configuration; - } - - public int RequiredLength => - _configuration.GetValue(Prefix + "RequiredLength", 10); - - public bool RequireNonLetterOrDigit => - _configuration.GetValue(Prefix + "RequireNonLetterOrDigit", false); - - public bool RequireDigit => - _configuration.GetValue(Prefix + "RequireDigit", false); - - public bool RequireLowercase => - _configuration.GetValue(Prefix + "RequireLowercase", false); - - public bool RequireUppercase => - _configuration.GetValue(Prefix + "RequireUppercase", false); - - public string HashAlgorithmType => - _configuration.GetValue(Prefix + "HashAlgorithmType", Constants.Security.AspNetUmbraco8PasswordHashAlgorithmName); // TODO: Need to change to current format when we do members - - public int MaxFailedAccessAttemptsBeforeLockout => - _configuration.GetValue(Prefix + "MaxFailedAccessAttemptsBeforeLockout", 5); - } -} diff --git a/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs b/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs deleted file mode 100644 index 4d35e3fa95..0000000000 --- a/src/Umbraco.Configuration/Models/ModelsBuilderConfig.cs +++ /dev/null @@ -1,86 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Umbraco.Core; -using Umbraco.Core.Configuration; - -namespace Umbraco.Configuration.Models -{ - /// - /// Represents the models builder configuration. - /// - internal class ModelsBuilderConfig : IModelsBuilderConfig - { - private const string Prefix = Constants.Configuration.ConfigModelsBuilderPrefix; - private readonly IConfiguration _configuration; - - /// - /// Initializes a new instance of the class. - /// - public ModelsBuilderConfig(IConfiguration configuration) - { - _configuration = configuration; - } - - public string DefaultModelsDirectory => "~/Umbraco/Models"; - - /// - /// Gets a value indicating whether the whole models experience is enabled. - /// - /// - /// 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(Prefix+"Enable", false); - - /// - /// Gets the models mode. - /// - public ModelsMode ModelsMode => - _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(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(Prefix+"EnableFactory", true); - - /// - /// 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(Prefix+"FlagOutOfDateModels", false) && !ModelsMode.IsLive(); - - /// - /// Gets the models directory. - /// - /// Default is ~/App_Data/Models but that can be changed. - public string ModelsDirectory => - _configuration.GetValue(Prefix+"ModelsDirectory", "~/Umbraco/Models"); - - /// - /// 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(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(Prefix+"DebugLevel", 0); - } -} diff --git a/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs b/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs deleted file mode 100644 index ce5cd65c20..0000000000 --- a/src/Umbraco.Configuration/Models/RequestHandlerSettings.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Extensions.Configuration; -using Umbraco.Core; -using Umbraco.Core.Configuration.UmbracoSettings; - -namespace Umbraco.Configuration.Models -{ - internal class RequestHandlerSettings : IRequestHandlerSettings - { - private const string Prefix = Constants.Configuration.ConfigPrefix + "RequestHandler:"; - private static readonly CharItem[] DefaultCharCollection = - { - new CharItem { Char = " ", Replacement = "-" }, - new CharItem { Char = "\"", Replacement = "" }, - new CharItem { Char = "'", Replacement = "" }, - new CharItem { Char = "%", Replacement = "" }, - new CharItem { Char = ".", Replacement = "" }, - new CharItem { Char = ";", Replacement = "" }, - new CharItem { Char = "/", Replacement = "" }, - new CharItem { Char = "\\", Replacement = "" }, - new CharItem { Char = ":", Replacement = "" }, - new CharItem { Char = "#", Replacement = "" }, - new CharItem { Char = "+", Replacement = "plus" }, - new CharItem { Char = "*", Replacement = "star" }, - new CharItem { Char = "&", Replacement = "" }, - new CharItem { Char = "?", Replacement = "" }, - new CharItem { Char = "æ", Replacement = "ae" }, - new CharItem { Char = "ä", Replacement = "ae" }, - new CharItem { Char = "ø", Replacement = "oe" }, - new CharItem { Char = "ö", Replacement = "oe" }, - new CharItem { Char = "å", Replacement = "aa" }, - new CharItem { Char = "ü", Replacement = "ue" }, - new CharItem { Char = "ß", Replacement = "ss" }, - new CharItem { Char = "|", Replacement = "-" }, - new CharItem { Char = "<", Replacement = "" }, - new CharItem { Char = ">", Replacement = "" } - }; - - private readonly IConfiguration _configuration; - - public RequestHandlerSettings(IConfiguration configuration) - { - _configuration = configuration; - } - - public bool AddTrailingSlash => - _configuration.GetValue(Prefix+"AddTrailingSlash", true); - - public bool ConvertUrlsToAscii => _configuration - .GetValue(Prefix+"ConvertUrlsToAscii").InvariantEquals("true"); - - public bool TryConvertUrlsToAscii => _configuration - .GetValue(Prefix+"ConvertUrlsToAscii").InvariantEquals("try"); - - - //We need to special handle ":", as this character is special in keys - public IEnumerable CharCollection - { - get - { - var collection = _configuration.GetSection(Prefix + "CharCollection").GetChildren() - .Select(x => new CharItem() - { - Char = x.GetValue("Char"), - Replacement = x.GetValue("Replacement"), - }).ToArray(); - - if (collection.Any() || _configuration.GetSection("Prefix").GetChildren().Any(x => - x.Key.Equals("CharCollection", StringComparison.OrdinalIgnoreCase))) - { - return collection; - } - - return DefaultCharCollection; - } - } - - - public class CharItem : IChar - { - public string Char { get; set; } - public string Replacement { get; set; } - } - } -} diff --git a/src/Umbraco.Configuration/Models/RuntimeSettings.cs b/src/Umbraco.Configuration/Models/RuntimeSettings.cs deleted file mode 100644 index ef129030b6..0000000000 --- a/src/Umbraco.Configuration/Models/RuntimeSettings.cs +++ /dev/null @@ -1,19 +0,0 @@ -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(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 deleted file mode 100644 index 297c95b1af..0000000000 --- a/src/Umbraco.Configuration/Models/SecuritySettings.cs +++ /dev/null @@ -1,33 +0,0 @@ -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) - { - _configuration = configuration; - } - - public bool KeepUserLoggedIn => _configuration.GetValue(Prefix + "KeepUserLoggedIn", false); - - public bool HideDisabledUsersInBackoffice => - _configuration.GetValue(Prefix + "HideDisabledUsersInBackoffice", false); - - public bool AllowPasswordReset => - _configuration.GetValue(Prefix + "AllowPasswordResetAllowPasswordReset", true); - - public string AuthCookieName => - _configuration.GetValue(Prefix + "AuthCookieName", "UMB_UCONTEXT"); - - public string AuthCookieDomain => - _configuration.GetValue(Prefix + "AuthCookieDomain"); - - public bool UsernameIsEmail => _configuration.GetValue(Prefix + "UsernameIsEmail", true); - } -} diff --git a/src/Umbraco.Configuration/Models/TypeFinderSettings.cs b/src/Umbraco.Configuration/Models/TypeFinderSettings.cs deleted file mode 100644 index 8a1f7ac9e0..0000000000 --- a/src/Umbraco.Configuration/Models/TypeFinderSettings.cs +++ /dev/null @@ -1,20 +0,0 @@ -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) - { - _configuration = configuration; - } - - public string AssembliesAcceptingLoadExceptions => - _configuration.GetValue(Prefix+"AssembliesAcceptingLoadExceptions"); - } -} diff --git a/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs b/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs deleted file mode 100644 index 25ce3e3d9a..0000000000 --- a/src/Umbraco.Configuration/Models/UserPasswordConfigurationSettings.cs +++ /dev/null @@ -1,36 +0,0 @@ -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) - { - _configuration = configuration; - } - - public int RequiredLength => _configuration.GetValue(Prefix + "RequiredLength", 10); - - public bool RequireNonLetterOrDigit => - _configuration.GetValue(Prefix + "RequireNonLetterOrDigit", false); - - public bool RequireDigit => _configuration.GetValue(Prefix + "RequireDigit", false); - - public bool RequireLowercase => - _configuration.GetValue(Prefix + "RequireLowercase", false); - - public bool RequireUppercase => - _configuration.GetValue(Prefix + "RequireUppercase", false); - - public string HashAlgorithmType => - _configuration.GetValue(Prefix + "HashAlgorithmType", Constants.Security.AspNetCoreV3PasswordHashAlgorithmName); - - public int MaxFailedAccessAttemptsBeforeLockout => - _configuration.GetValue(Prefix + "MaxFailedAccessAttemptsBeforeLockout", 5); - } -} diff --git a/src/Umbraco.Configuration/Models/WebRoutingSettings.cs b/src/Umbraco.Configuration/Models/WebRoutingSettings.cs deleted file mode 100644 index 9ac856ca9f..0000000000 --- a/src/Umbraco.Configuration/Models/WebRoutingSettings.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Umbraco.Core; -using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Core.Models.PublishedContent; - -namespace Umbraco.Configuration.Models -{ - internal class WebRoutingSettings : IWebRoutingSettings - { - private const string Prefix = Constants.Configuration.ConfigPrefix + "WebRouting:"; - private readonly IConfiguration _configuration; - - public WebRoutingSettings(IConfiguration configuration) - { - _configuration = configuration; - } - - public bool TrySkipIisCustomErrors => - _configuration.GetValue(Prefix + "TrySkipIisCustomErrors", false); - - public bool InternalRedirectPreservesTemplate => - _configuration.GetValue(Prefix + "InternalRedirectPreservesTemplate", false); - - public bool DisableAlternativeTemplates => - _configuration.GetValue(Prefix + "DisableAlternativeTemplates", false); - - public bool ValidateAlternativeTemplates => - _configuration.GetValue(Prefix + "ValidateAlternativeTemplates", false); - - public bool DisableFindContentByIdPath => - _configuration.GetValue(Prefix + "DisableFindContentByIdPath", false); - - public bool DisableRedirectUrlTracking => - _configuration.GetValue(Prefix + "DisableRedirectUrlTracking", false); - - public string UrlProviderMode => - _configuration.GetValue(Prefix + "UrlProviderMode", UrlMode.Auto.ToString()); - - public string UmbracoApplicationUrl => - _configuration.GetValue(Prefix + "UmbracoApplicationUrl"); - } -} diff --git a/src/Umbraco.Configuration/UmbracoSettings/RequestHandlerElement.cs b/src/Umbraco.Configuration/UmbracoSettings/RequestHandlerElement.cs deleted file mode 100644 index f959a56e71..0000000000 --- a/src/Umbraco.Configuration/UmbracoSettings/RequestHandlerElement.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Configuration; -using System.Globalization; -using System.Collections.Generic; - -namespace Umbraco.Core.Configuration.UmbracoSettings -{ - internal class RequestHandlerElement : UmbracoConfigurationElement, IRequestHandlerSettings - { - [ConfigurationProperty("addTrailingSlash")] - public InnerTextConfigurationElement AddTrailingSlash => GetOptionalTextElement("addTrailingSlash", true); - - private UrlReplacingElement _defaultUrlReplacing; - [ConfigurationProperty("urlReplacing")] - public UrlReplacingElement UrlReplacing - { - get - { - if (_defaultUrlReplacing != null) - { - return _defaultUrlReplacing; - } - - //here we need to check if this element is defined, if it is not then we'll setup the defaults - var prop = Properties["urlReplacing"]; - var urls = this[prop] as ConfigurationElement; - if (urls != null && urls.ElementInformation.IsPresent == false) - { - _defaultUrlReplacing = new UrlReplacingElement() - { - CharCollection = GetDefaultCharReplacements() - }; - - return _defaultUrlReplacing; - } - - return (UrlReplacingElement)this["urlReplacing"]; - } - } - - public static CharCollection GetDefaultCharReplacements() - { - var dictionary = new Dictionary() - { - {' ',"-"}, - {'\"',""}, - {'\'',""}, - {'%',""}, - {'.',""}, - {';',""}, - {'/',""}, - {'\\',""}, - {':',""}, - {'#',""}, - {'+',"plus"}, - {'*',"star"}, - {'&',""}, - {'?',""}, - {'æ',"ae"}, - {'ø',"oe"}, - {'å',"aa"}, - {'ä',"ae"}, - {'ö',"oe"}, - {'ü',"ue"}, - {'ß',"ss"}, - {'Ä',"ae"}, - {'Ö',"oe"}, - {'|',"-"}, - {'<',""}, - {'>',""} - }; - - //const string chars = @" ,"",',%,.,;,/,\,:,#,+,*,&,?,æ,ø,å,ä,ö,ü,ß,Ä,Ö,|,<,>"; - - var collection = new CharCollection(); - foreach (var c in dictionary) - { - collection.Add(new CharElement - { - Char = c.Key.ToString(CultureInfo.InvariantCulture), - Replacement = c.Value.ToString(CultureInfo.InvariantCulture) - }); - } - - return collection; - } - - bool IRequestHandlerSettings.AddTrailingSlash => AddTrailingSlash; - - bool IRequestHandlerSettings.ConvertUrlsToAscii => UrlReplacing.ConvertUrlsToAscii.InvariantEquals("true"); - - bool IRequestHandlerSettings.TryConvertUrlsToAscii => UrlReplacing.ConvertUrlsToAscii.InvariantEquals("try"); - - IEnumerable IRequestHandlerSettings.CharCollection => UrlReplacing.CharCollection; - } -} diff --git a/src/Umbraco.Configuration/UmbracoSettings/SecurityElement.cs b/src/Umbraco.Configuration/UmbracoSettings/SecurityElement.cs deleted file mode 100644 index aec6809298..0000000000 --- a/src/Umbraco.Configuration/UmbracoSettings/SecurityElement.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System.Configuration; - -namespace Umbraco.Core.Configuration.UmbracoSettings -{ - internal class SecurityElement : UmbracoConfigurationElement, ISecuritySettings - { - [ConfigurationProperty("keepUserLoggedIn")] - internal InnerTextConfigurationElement KeepUserLoggedIn => GetOptionalTextElement("keepUserLoggedIn", true); - - [ConfigurationProperty("hideDisabledUsersInBackoffice")] - internal InnerTextConfigurationElement HideDisabledUsersInBackoffice => GetOptionalTextElement("hideDisabledUsersInBackoffice", false); - - /// - /// Used to enable/disable the forgot password functionality on the back office login screen - /// - [ConfigurationProperty("allowPasswordReset")] - internal InnerTextConfigurationElement AllowPasswordReset => GetOptionalTextElement("allowPasswordReset", true); - - /// - /// A boolean indicating that by default the email address will be the username - /// - /// - /// Even if this is true and the username is different from the email in the database, the username field will still be shown. - /// When this is false, the username and email fields will be shown in the user section. - /// - [ConfigurationProperty("usernameIsEmail")] - internal InnerTextConfigurationElement UsernameIsEmail => GetOptionalTextElement("usernameIsEmail", true); - - [ConfigurationProperty("authCookieName")] - internal InnerTextConfigurationElement AuthCookieName => GetOptionalTextElement("authCookieName", "UMB_UCONTEXT"); - - [ConfigurationProperty("authCookieDomain")] - internal InnerTextConfigurationElement AuthCookieDomain => GetOptionalTextElement("authCookieDomain", null); - - [ConfigurationProperty("userPasswordConfiguration")] - public UserPasswordConfigurationElement UserPasswordConfiguration => (UserPasswordConfigurationElement)this["userPasswordConfiguration"]; - - [ConfigurationProperty("memberPasswordConfiguration")] - public MemberPasswordConfigurationElement MemberPasswordConfiguration => (MemberPasswordConfigurationElement)this["memberPasswordConfiguration"]; - - bool ISecuritySettings.KeepUserLoggedIn => KeepUserLoggedIn; - - bool ISecuritySettings.HideDisabledUsersInBackoffice => HideDisabledUsersInBackoffice; - - /// - /// Used to enable/disable the forgot password functionality on the back office login screen - /// - bool ISecuritySettings.AllowPasswordReset => AllowPasswordReset; - - /// - /// A boolean indicating that by default the email address will be the username - /// - /// - /// Even if this is true and the username is different from the email in the database, the username field will still be shown. - /// When this is false, the username and email fields will be shown in the user section. - /// - bool ISecuritySettings.UsernameIsEmail => UsernameIsEmail; - - string ISecuritySettings.AuthCookieName => AuthCookieName; - - string ISecuritySettings.AuthCookieDomain => AuthCookieDomain; - } -} diff --git a/src/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsSection.cs b/src/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsSection.cs index 34e3c9c242..e8ab155ef1 100644 --- a/src/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsSection.cs +++ b/src/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsSection.cs @@ -8,14 +8,6 @@ namespace Umbraco.Core.Configuration.UmbracoSettings [ConfigurationProperty("content")] public ContentElement Content => (ContentElement)this["content"]; - [ConfigurationProperty("security")] - public SecurityElement Security => (SecurityElement)this["security"]; - - [ConfigurationProperty("requestHandler")] - public RequestHandlerElement RequestHandler => (RequestHandlerElement)this["requestHandler"]; - - [ConfigurationProperty("web.routing")] - public WebRoutingElement WebRouting => (WebRoutingElement)this["web.routing"]; } } diff --git a/src/Umbraco.Configuration/UmbracoSettings/WebRoutingElement.cs b/src/Umbraco.Configuration/UmbracoSettings/WebRoutingElement.cs deleted file mode 100644 index 206fc213d2..0000000000 --- a/src/Umbraco.Configuration/UmbracoSettings/WebRoutingElement.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Configuration; - -namespace Umbraco.Core.Configuration.UmbracoSettings -{ - internal class WebRoutingElement : ConfigurationElement, IWebRoutingSettings - { - [ConfigurationProperty("trySkipIisCustomErrors", DefaultValue = "false")] - public bool TrySkipIisCustomErrors => (bool) base["trySkipIisCustomErrors"]; - - [ConfigurationProperty("internalRedirectPreservesTemplate", DefaultValue = "false")] - public bool InternalRedirectPreservesTemplate => (bool) base["internalRedirectPreservesTemplate"]; - - [ConfigurationProperty("disableAlternativeTemplates", DefaultValue = "false")] - public bool DisableAlternativeTemplates => (bool) base["disableAlternativeTemplates"]; - - [ConfigurationProperty("validateAlternativeTemplates", DefaultValue = "false")] - public bool ValidateAlternativeTemplates => (bool) base["validateAlternativeTemplates"]; - - [ConfigurationProperty("disableFindContentByIdPath", DefaultValue = "false")] - public bool DisableFindContentByIdPath => (bool) base["disableFindContentByIdPath"]; - - [ConfigurationProperty("disableRedirectUrlTracking", DefaultValue = "false")] - public bool DisableRedirectUrlTracking => (bool) base["disableRedirectUrlTracking"]; - - [ConfigurationProperty("urlProviderMode", DefaultValue = "Auto")] - public string UrlProviderMode => (string) base["urlProviderMode"]; - - [ConfigurationProperty("umbracoApplicationUrl", DefaultValue = null)] - public string UmbracoApplicationUrl => (string)base["umbracoApplicationUrl"]; - } -} diff --git a/src/Umbraco.Core/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs b/src/Umbraco.Core/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs deleted file mode 100644 index 4564e87ed6..0000000000 --- a/src/Umbraco.Core/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections.Generic; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - public interface IHealthCheckNotificationSettings - { - bool Enabled { get; } - string FirstRunTime { get; } - int PeriodInHours { get; } - IReadOnlyDictionary NotificationMethods { get; } - IEnumerable DisabledChecks { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/HealthChecks/IHealthChecksSettings.cs b/src/Umbraco.Core/Configuration/HealthChecks/IHealthChecksSettings.cs deleted file mode 100644 index 785e8d5651..0000000000 --- a/src/Umbraco.Core/Configuration/HealthChecks/IHealthChecksSettings.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; - -namespace Umbraco.Core.Configuration.HealthChecks -{ - public interface IHealthChecksSettings - { - IEnumerable DisabledChecks { get; } - IHealthCheckNotificationSettings NotificationSettings { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/ICoreDebugSettings.cs b/src/Umbraco.Core/Configuration/ICoreDebugSettings.cs deleted file mode 100644 index 586e4bc3e4..0000000000 --- a/src/Umbraco.Core/Configuration/ICoreDebugSettings.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace Umbraco.Core.Configuration -{ - public interface ICoreDebugSettings - { - /// - /// When set to true, Scope logs the stack trace for any scope that gets disposed without being completed. - /// this helps troubleshooting rogue scopes that we forget to complete - /// - bool LogUncompletedScopes { get; } - - /// - /// When set to true, the Logger creates a mini dump of w3wp in ~/App_Data/MiniDump whenever it logs - /// an error due to a ThreadAbortException that is due to a timeout. - /// - bool DumpOnTimeoutThreadAbort { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/IExceptionFilterSettings.cs b/src/Umbraco.Core/Configuration/IExceptionFilterSettings.cs deleted file mode 100644 index 169c04da5f..0000000000 --- a/src/Umbraco.Core/Configuration/IExceptionFilterSettings.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Umbraco.Core.Configuration -{ - public interface IExceptionFilterSettings - { - bool Disabled { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/IGlobalSettings.cs b/src/Umbraco.Core/Configuration/IGlobalSettings.cs index 26d833613f..ac32ea41c6 100644 --- a/src/Umbraco.Core/Configuration/IGlobalSettings.cs +++ b/src/Umbraco.Core/Configuration/IGlobalSettings.cs @@ -1,4 +1,6 @@ -namespace Umbraco.Core.Configuration +using Umbraco.Core.Configuration.Models; + +namespace Umbraco.Core.Configuration { /// /// Contains general settings information for the entire Umbraco instance based on information from web.config appsettings @@ -70,7 +72,7 @@ string UmbracoMediaPath { get; } bool IsSmtpServerConfigured { get; } - ISmtpSettings SmtpSettings { get; } + SmtpSettings SmtpSettings { get; } /// /// Gets a value indicating whether the runtime should enter Install level when the database is missing. diff --git a/src/Umbraco.Core/Configuration/IHostingSettings.cs b/src/Umbraco.Core/Configuration/IHostingSettings.cs deleted file mode 100644 index 48ff4f216e..0000000000 --- a/src/Umbraco.Core/Configuration/IHostingSettings.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Umbraco.Core.Hosting; - -namespace Umbraco.Core.Configuration -{ - public interface IHostingSettings - { - bool DebugMode { get; } - - /// - /// Gets the configuration for the location of temporary files. - /// - LocalTempStorage LocalTempStorageLocation { get; } - - /// - /// Optional property to explicitly configure the application's virtual path - /// - /// - /// By default this is null which will mean that the is automatically configured, - /// otherwise this explicitly sets it. - /// If set, this value must begin with a "/" and cannot end with "/". - /// - string ApplicationVirtualPath { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/IImagingSettings.cs b/src/Umbraco.Core/Configuration/IImagingSettings.cs deleted file mode 100644 index 13e1b30389..0000000000 --- a/src/Umbraco.Core/Configuration/IImagingSettings.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Umbraco.Core.Configuration -{ - public interface IImagingSettings - { - int MaxBrowserCacheDays { get;} - int MaxCacheDays { get; } - uint CachedNameLength { get; } - int MaxResizeWidth { get; } - int MaxResizeHeight { get; } - string CacheFolder { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/IModelsBuilderConfig.cs b/src/Umbraco.Core/Configuration/IModelsBuilderConfig.cs deleted file mode 100644 index 990bde9843..0000000000 --- a/src/Umbraco.Core/Configuration/IModelsBuilderConfig.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Umbraco.Core.Configuration -{ - public interface IModelsBuilderConfig - { - bool Enable { get; } - bool AcceptUnsafeModelsDirectory { get; } - int DebugLevel { get; } - bool EnableFactory { get; } - bool FlagOutOfDateModels { get; } - string ModelsDirectory { get; } - ModelsMode ModelsMode { get; } - string ModelsNamespace { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/IRuntimeSettings.cs b/src/Umbraco.Core/Configuration/IRuntimeSettings.cs deleted file mode 100644 index 915e774186..0000000000 --- a/src/Umbraco.Core/Configuration/IRuntimeSettings.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Core.Configuration -{ - public interface IRuntimeSettings - { - int? MaxQueryStringLength { get; } - int? MaxRequestLength { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/ISmtpSettings.cs b/src/Umbraco.Core/Configuration/ISmtpSettings.cs deleted file mode 100644 index ea42ae5567..0000000000 --- a/src/Umbraco.Core/Configuration/ISmtpSettings.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Net.Mail; - -namespace Umbraco.Core.Configuration -{ - public interface ISmtpSettings - { - string From { get; } - string Host { get; } - int Port{ get; } - string PickupDirectoryLocation { get; } - SmtpDeliveryMethod DeliveryMethod { get; } - string Username { get; } - string Password { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/IRequestHandlerSettings.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IRequestHandlerSettings.cs deleted file mode 100644 index 11fdaa8310..0000000000 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/IRequestHandlerSettings.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; - -namespace Umbraco.Core.Configuration.UmbracoSettings -{ - public interface IRequestHandlerSettings : IUmbracoConfigurationSection - { - bool AddTrailingSlash { get; } - - bool ConvertUrlsToAscii { get; } - - bool TryConvertUrlsToAscii { get; } - - IEnumerable CharCollection { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ISecuritySettings.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/ISecuritySettings.cs deleted file mode 100644 index 6ab520fefd..0000000000 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/ISecuritySettings.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace Umbraco.Core.Configuration.UmbracoSettings -{ - public interface ISecuritySettings : IUmbracoConfigurationSection - { - bool KeepUserLoggedIn { get; } - - bool HideDisabledUsersInBackoffice { get; } - - /// - /// Used to enable/disable the forgot password functionality on the back office login screen - /// - bool AllowPasswordReset { get; } - - string AuthCookieName { get; } - - string AuthCookieDomain { get; } - - /// - /// A boolean indicating that by default the email address will be the username - /// - /// - /// Even if this is true and the username is different from the email in the database, the username field will still be shown. - /// When this is false, the username and email fields will be shown in the user section. - /// - bool UsernameIsEmail { get; } - } -} diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSettings.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSettings.cs deleted file mode 100644 index f7f6a94d30..0000000000 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSettings.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Umbraco.Core.Configuration.UmbracoSettings -{ - public interface IWebRoutingSettings : IUmbracoConfigurationSection - { - bool TrySkipIisCustomErrors { get; } - - bool InternalRedirectPreservesTemplate { get; } - - bool DisableAlternativeTemplates { get; } - - bool ValidateAlternativeTemplates { get; } - - bool DisableFindContentByIdPath { get; } - - bool DisableRedirectUrlTracking { get; } - - string UrlProviderMode { get; } - - string UmbracoApplicationUrl { get; } - } -} diff --git a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs b/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs index fd03610bb4..278bbcfca2 100644 --- a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs +++ b/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs @@ -62,20 +62,5 @@ namespace Umbraco.Infrastructure.Configuration RequireUppercase = passwordConfiguration.RequireUppercase, }; } - - public static SecuritySettings ConvertSecuritySettings(ISecuritySettings securitySettings) - { - return new SecuritySettings - { - MemberPassword = new MemberPasswordConfigurationSettings(), - UserPassword = new UserPasswordConfigurationSettings(), - AllowPasswordReset = securitySettings.AllowPasswordReset, - AuthCookieDomain = securitySettings.AuthCookieDomain, - AuthCookieName = securitySettings.AuthCookieDomain, - UsernameIsEmail = securitySettings.UsernameIsEmail, - KeepUserLoggedIn = securitySettings.KeepUserLoggedIn, - HideDisabledUsersInBackoffice = securitySettings.HideDisabledUsersInBackoffice, - }; - } } } diff --git a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsToLegacy.cs b/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsToLegacy.cs index b2b6a3928d..ca4c1cd29e 100644 --- a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsToLegacy.cs +++ b/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsToLegacy.cs @@ -28,7 +28,7 @@ namespace Umbraco.Infrastructure.Configuration RegisterType = globalSettings.RegisterType, ReservedPaths = globalSettings.ReservedPaths, ReservedUrls = globalSettings.ReservedUrls, - SmtpSettings = new TestSmtpSettings + SmtpSettings = new SmtpSettings { DeliveryMethod = globalSettings.Smtp.DeliveryMethod, From = globalSettings.Smtp.From, @@ -88,7 +88,7 @@ namespace Umbraco.Infrastructure.Configuration public bool IsSmtpServerConfigured { get; set; } - public ISmtpSettings SmtpSettings { get; set; } + public SmtpSettings SmtpSettings { get; set; } public bool InstallMissingDatabase { get; set; } @@ -109,22 +109,6 @@ namespace Umbraco.Infrastructure.Configuration public string ConfigurationStatus { get; set; } } - private class TestSmtpSettings : ISmtpSettings - { - public string From { get; set; } - - public string Host { get; set; } - - public int Port { get; set; } - - public string PickupDirectoryLocation { get; set; } - - public SmtpDeliveryMethod DeliveryMethod { get; set; } - - public string Username { get; set; } - - public string Password { get; set; } - } private class TestUserPasswordConfiguration : IUserPasswordConfiguration { diff --git a/src/Umbraco.Infrastructure/HealthCheck/HealthCheckResults.cs b/src/Umbraco.Infrastructure/HealthCheck/HealthCheckResults.cs index 8f3c05f5bd..0b27b34875 100644 --- a/src/Umbraco.Infrastructure/HealthCheck/HealthCheckResults.cs +++ b/src/Umbraco.Infrastructure/HealthCheck/HealthCheckResults.cs @@ -71,7 +71,7 @@ namespace Umbraco.Web.HealthCheck foreach (var checkResult in checkResults) { - Logger.Info("Result for {HealthCheckName}: {HealthCheckResult}, Message: '{HealthCheckMessage}'", checkName, checkResult.ResultType, checkResult.Message); + Logger.Info("'Result for {HealthCheckName}: {HealthCheckResult}, Message: '{HealthCheckMessage}'", checkName, checkResult.ResultType, checkResult.Message); } } } diff --git a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs index 192849aa86..1088dfb470 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs @@ -4,9 +4,8 @@ using System.Reflection; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Options; using Umbraco.Configuration; -using Umbraco.Configuration.Legacy; -using Umbraco.Core.Configuration; using Umbraco.Core.Composing; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; diff --git a/src/Umbraco.Tests.Common/SettingsForTests.cs b/src/Umbraco.Tests.Common/SettingsForTests.cs index 1a14dc6bc1..ee46e5c82f 100644 --- a/src/Umbraco.Tests.Common/SettingsForTests.cs +++ b/src/Umbraco.Tests.Common/SettingsForTests.cs @@ -101,11 +101,9 @@ namespace Umbraco.Tests.Common private void ResetSettings() { _defaultGlobalSettings.Clear(); - _defaultHostingSettings = null; } private readonly Dictionary _defaultGlobalSettings = new Dictionary(); - private IHostingSettings _defaultHostingSettings; public IGlobalSettings GetDefaultGlobalSettings(IUmbracoVersion umbVersion) { @@ -117,48 +115,6 @@ namespace Umbraco.Tests.Common return settings; } - public IHostingSettings DefaultHostingSettings => _defaultHostingSettings ?? (_defaultHostingSettings = GenerateMockHostingSettings()); - - public IHostingSettings GenerateMockHostingSettings() - { - var config = Mock.Of( - settings => - settings.LocalTempStorageLocation == LocalTempStorage.EnvironmentTemp && - settings.DebugMode == false - ); - return config; - } - - public IWebRoutingSettings GenerateMockWebRoutingSettings() - { - var mock = new Mock(); - - mock.Setup(x => x.DisableRedirectUrlTracking).Returns(false); - mock.Setup(x => x.InternalRedirectPreservesTemplate).Returns(false); - mock.Setup(x => x.UrlProviderMode).Returns(UrlMode.Auto.ToString()); - - return mock.Object; - } - - public IRequestHandlerSettings GenerateMockRequestHandlerSettings() - { - var mock = new Mock(); - - mock.Setup(x => x.AddTrailingSlash).Returns(true); - mock.Setup(x => x.ConvertUrlsToAscii).Returns(false); - mock.Setup(x => x.TryConvertUrlsToAscii).Returns(false); - mock.Setup(x => x.CharCollection).Returns(RequestHandlerElement.GetDefaultCharReplacements); - - return mock.Object; - } - - public ISecuritySettings GenerateMockSecuritySettings() - { - var security = new Mock(); - - return security.Object; - } - public IUserPasswordConfiguration GenerateMockUserPasswordConfiguration() { var mock = new Mock(); diff --git a/src/Umbraco.Tests.Common/TestHelperBase.cs b/src/Umbraco.Tests.Common/TestHelperBase.cs index 234767e8af..65b4002b0d 100644 --- a/src/Umbraco.Tests.Common/TestHelperBase.cs +++ b/src/Umbraco.Tests.Common/TestHelperBase.cs @@ -6,6 +6,7 @@ using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Diagnostics; using Umbraco.Core.Hosting; @@ -76,7 +77,7 @@ namespace Umbraco.Tests.Common public abstract IDbProviderFactoryCreator DbProviderFactoryCreator { get; } public abstract IBulkSqlInsertProvider BulkSqlInsertProvider { get; } public abstract IMarchal Marchal { get; } - public ICoreDebugSettings CoreDebugSettings { get; } = new CoreDebugSettings(); + public CoreDebugSettings CoreDebugSettings { get; } = new CoreDebugSettings(); public IIOHelper IOHelper { @@ -100,8 +101,6 @@ namespace Umbraco.Tests.Common } public SettingsForTests SettingsForTests { get; } - public IWebRoutingSettings WebRoutingSettings => SettingsForTests.GenerateMockWebRoutingSettings(); - /// /// Some test files are copied to the /bin (/bin/debug) on build, this is a utility to return their physical path based on a virtual path name /// diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs deleted file mode 100644 index 31edde3600..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework; -using Umbraco.Core; -using Umbraco.Core.Configuration; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - [TestFixture] - public class ContentElementDefaultTests : ContentElementTests - { - protected override bool TestingDefaults => true; - - [Test] - public override void DisableHtmlEmail() - { - Assert.IsTrue(ContentSettings.DisableHtmlEmail == false); - } - - [Test] - public override void Can_Set_Multiple() - { - Assert.IsTrue(ContentSettings.Error404Collection.Count() == 1); - Assert.IsTrue(ContentSettings.Error404Collection.ElementAt(0).Culture == null); - Assert.IsTrue(ContentSettings.Error404Collection.ElementAt(0).ContentId == 1); - } - - [Test] - public override void ImageAutoFillProperties() - { - Assert.IsTrue(ContentSettings.ImageAutoFillProperties.Count() == 1); - Assert.IsTrue(ContentSettings.ImageAutoFillProperties.ElementAt(0).Alias == "umbracoFile"); - Assert.IsTrue(ContentSettings.ImageAutoFillProperties.ElementAt(0).WidthFieldAlias == "umbracoWidth"); - Assert.IsTrue(ContentSettings.ImageAutoFillProperties.ElementAt(0).HeightFieldAlias == "umbracoHeight"); - Assert.IsTrue(ContentSettings.ImageAutoFillProperties.ElementAt(0).LengthFieldAlias == "umbracoBytes"); - Assert.IsTrue(ContentSettings.ImageAutoFillProperties.ElementAt(0).ExtensionFieldAlias == "umbracoExtension"); - } - - /// - /// Whitelist is empty in default settings file and is not populated by default, but disallowed is empty and is populated by default - /// - /// - /// - [Test] - [TestCase("png", true)] - [TestCase("jpg", true)] - [TestCase("gif", true)] - [TestCase("bmp", true)] - [TestCase("php", true)] - [TestCase("ashx", false)] - [TestCase("config", false)] - [TestCase("test", true)] - public override void IsFileAllowedForUpload_WithWhitelist(string extension, bool expected) - { - Console.WriteLine("Extension being tested: {0}", extension); - Console.WriteLine("Expected IsAllowed?: {0}", expected); - Console.WriteLine("AllowedUploadFiles: {0}", ContentSettings.AllowedUploadFiles); - Console.WriteLine("DisallowedUploadFiles: {0}", ContentSettings.DisallowedUploadFiles); - - bool allowedContainsExtension = ContentSettings.AllowedUploadFiles.Any(x => x.InvariantEquals(extension)); - bool disallowedContainsExtension = ContentSettings.DisallowedUploadFiles.Any(x => x.InvariantEquals(extension)); - - Console.WriteLine("AllowedContainsExtension: {0}", allowedContainsExtension); - Console.WriteLine("DisallowedContainsExtension: {0}", disallowedContainsExtension); - - Assert.AreEqual(expected, ContentSettings.IsFileAllowedForUpload(extension)); - } - - } -} diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs deleted file mode 100644 index 85dc2f0ea6..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs +++ /dev/null @@ -1,117 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework; -using Umbraco.Core; -using Umbraco.Core.Configuration; -using Umbraco.Core.Macros; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - [TestFixture] - public class ContentElementTests : UmbracoSettingsTests - { - [Test] - public void EmailAddress() - { - Assert.AreEqual(ContentSettings.NotificationEmailAddress, "robot@umbraco.dk"); - } - [Test] - public virtual void DisableHtmlEmail() - { - Assert.IsTrue(ContentSettings.DisableHtmlEmail); - } - - [Test] - public virtual void Can_Set_Multiple() - { - Assert.AreEqual(3, ContentSettings.Error404Collection.Count()); - Assert.AreEqual("default", ContentSettings.Error404Collection.ElementAt(0).Culture); - Assert.AreEqual(1047, ContentSettings.Error404Collection.ElementAt(0).ContentId); - Assert.IsTrue(ContentSettings.Error404Collection.ElementAt(0).HasContentId); - Assert.IsFalse(ContentSettings.Error404Collection.ElementAt(0).HasContentKey); - Assert.AreEqual("en-US", ContentSettings.Error404Collection.ElementAt(1).Culture); - Assert.AreEqual("$site/error [@name = 'error']", ContentSettings.Error404Collection.ElementAt(1).ContentXPath); - Assert.IsFalse(ContentSettings.Error404Collection.ElementAt(1).HasContentId); - Assert.IsFalse(ContentSettings.Error404Collection.ElementAt(1).HasContentKey); - Assert.AreEqual("en-UK", ContentSettings.Error404Collection.ElementAt(2).Culture); - Assert.AreEqual(new Guid("8560867F-B88F-4C74-A9A4-679D8E5B3BFC"), ContentSettings.Error404Collection.ElementAt(2).ContentKey); - Assert.IsTrue(ContentSettings.Error404Collection.ElementAt(2).HasContentKey); - Assert.IsFalse(ContentSettings.Error404Collection.ElementAt(2).HasContentId); - } - - [Test] - public void ImageFileTypes() - { - Assert.IsTrue(ContentSettings.ImageFileTypes.All(x => "jpeg,jpg,gif,bmp,png,tiff,tif".Split(',').Contains(x))); - } - - [Test] - public virtual void ImageAutoFillProperties() - { - Assert.AreEqual(2, ContentSettings.ImageAutoFillProperties.Count()); - Assert.AreEqual("umbracoFile", ContentSettings.ImageAutoFillProperties.ElementAt(0).Alias); - Assert.AreEqual("umbracoWidth", ContentSettings.ImageAutoFillProperties.ElementAt(0).WidthFieldAlias); - Assert.AreEqual("umbracoHeight", ContentSettings.ImageAutoFillProperties.ElementAt(0).HeightFieldAlias); - Assert.AreEqual("umbracoBytes", ContentSettings.ImageAutoFillProperties.ElementAt(0).LengthFieldAlias); - Assert.AreEqual("umbracoExtension", ContentSettings.ImageAutoFillProperties.ElementAt(0).ExtensionFieldAlias); - Assert.AreEqual("umbracoFile2", ContentSettings.ImageAutoFillProperties.ElementAt(1).Alias); - Assert.AreEqual("umbracoWidth2", ContentSettings.ImageAutoFillProperties.ElementAt(1).WidthFieldAlias); - Assert.AreEqual("umbracoHeight2", ContentSettings.ImageAutoFillProperties.ElementAt(1).HeightFieldAlias); - Assert.AreEqual("umbracoBytes2", ContentSettings.ImageAutoFillProperties.ElementAt(1).LengthFieldAlias); - Assert.AreEqual("umbracoExtension2", ContentSettings.ImageAutoFillProperties.ElementAt(1).ExtensionFieldAlias); - } - - [Test] - public void PreviewBadge() - { - Assert.AreEqual(ContentSettings.PreviewBadge, @"
Preview modeClick to end
"); - } - [Test] - public void ResolveUrlsFromTextString() - { - Assert.IsFalse(ContentSettings.ResolveUrlsFromTextString); - } - [Test] - public void MacroErrors() - { - Assert.AreEqual(ContentSettings.MacroErrorBehaviour, MacroErrorBehaviour.Inline); - } - - [Test] - public void DisallowedUploadFiles() - { - Assert.IsTrue(ContentSettings.DisallowedUploadFiles.All(x => "ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd".Split(',').Contains(x))); - } - - [Test] - public void AllowedUploadFiles() - { - Assert.IsTrue(ContentSettings.AllowedUploadFiles.All(x => "jpg,gif,png".Split(',').Contains(x))); - } - - [Test] - [TestCase("png", true)] - [TestCase("jpg", true)] - [TestCase("gif", true)] - [TestCase("bmp", false)] - [TestCase("php", false)] - [TestCase("ashx", false)] - [TestCase("config", false)] - [TestCase("test", false)] - public virtual void IsFileAllowedForUpload_WithWhitelist(string extension, bool expected) - { - Console.WriteLine("Extension being tested: {0}", extension); - Console.WriteLine("Expected IsAllowed?: {0}", expected); - Console.WriteLine("AllowedUploadFiles: {0}", ContentSettings.AllowedUploadFiles); - Console.WriteLine("DisallowedUploadFiles: {0}", ContentSettings.DisallowedUploadFiles); - - bool allowedContainsExtension = ContentSettings.AllowedUploadFiles.Any(x => x.InvariantEquals(extension)); - bool disallowedContainsExtension = ContentSettings.DisallowedUploadFiles.Any(x => x.InvariantEquals(extension)); - - Console.WriteLine("AllowedContainsExtension: {0}", allowedContainsExtension); - Console.WriteLine("DisallowedContainsExtension: {0}", disallowedContainsExtension); - - Assert.AreEqual(expected, ContentSettings.IsFileAllowedForUpload(extension)); - } - } -} diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs deleted file mode 100644 index c2e21c5e2c..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs +++ /dev/null @@ -1,10 +0,0 @@ -using NUnit.Framework; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - [TestFixture] - public class RequestHandlerElementDefaultTests : RequestHandlerElementTests - { - protected override bool TestingDefaults => true; - } -} diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs deleted file mode 100644 index 01a2b48e16..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Linq; -using NUnit.Framework; -using Umbraco.Core; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - [TestFixture] - public class RequestHandlerElementTests : UmbracoSettingsTests - { - [Test] - public void AddTrailingSlash() - { - Assert.IsTrue(RequestHandlerSettings.AddTrailingSlash == true); - } - - [Test] - public void CharCollection() - { - var chars = @" ,"",',%,.,;,/,\,:,#,+,*,&,?,æ,ø,å,ä,ö,ü,ß,Ä,Ö,|,<,>"; - var items = chars.Split(','); - Assert.AreEqual(items.Length, RequestHandlerSettings.CharCollection.Count()); - Assert.IsTrue(RequestHandlerSettings.CharCollection - .All(x => items.Contains(x.Char))); - - var vals = @"-,plus,star,ae,oe,aa,ae,oe,ue,ss,ae,oe,-"; - var splitVals = vals.Split(','); - Assert.AreEqual(splitVals.Length, RequestHandlerSettings.CharCollection.Count(x => x.Replacement.IsNullOrWhiteSpace() == false)); - Assert.IsTrue(RequestHandlerSettings.CharCollection - .All(x => string.IsNullOrEmpty(x.Replacement) || vals.Split(',').Contains(x.Replacement))); - } - - } -} diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs deleted file mode 100644 index f5566df5ed..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs +++ /dev/null @@ -1,10 +0,0 @@ -using NUnit.Framework; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - [TestFixture] - public class SecurityElementDefaultTests : SecurityElementTests - { - protected override bool TestingDefaults => true; - } -} diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs deleted file mode 100644 index 6a8fc854d7..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs +++ /dev/null @@ -1,123 +0,0 @@ -using NUnit.Framework; -using Umbraco.Core; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - [TestFixture] - public class SecurityElementTests : UmbracoSettingsTests - { - [Test] - public void KeepUserLoggedIn() - { - Assert.IsTrue(SecuritySettings.KeepUserLoggedIn == true); - } - - [Test] - public void HideDisabledUsersInBackoffice() - { - Assert.IsTrue(SecuritySettings.HideDisabledUsersInBackoffice == false); - } - - [Test] - public void AllowPasswordReset() - { - Assert.IsTrue(SecuritySettings.AllowPasswordReset == true); - } - - [Test] - public void AuthCookieDomain() - { - Assert.IsTrue(SecuritySettings.AuthCookieDomain == null); - } - - [Test] - public void AuthCookieName() - { - Assert.IsTrue(SecuritySettings.AuthCookieName == "UMB_UCONTEXT"); - } - - [Test] - public void UserPasswordConfiguration_RequiredLength() - { - Assert.IsTrue(UserPasswordConfiguration.RequiredLength == 12); - } - - [Test] - public void UserPasswordConfiguration_RequireNonLetterOrDigit() - { - Assert.IsTrue(UserPasswordConfiguration.RequireNonLetterOrDigit == false); - } - - [Test] - public void UserPasswordConfiguration_RequireDigit() - { - Assert.IsTrue(UserPasswordConfiguration.RequireDigit == false); - } - - [Test] - public void UserPasswordConfiguration_RequireLowercase() - { - Assert.IsTrue(UserPasswordConfiguration.RequireLowercase == false); - } - - [Test] - public void UserPasswordConfiguration_RequireUppercase() - { - Assert.IsTrue(UserPasswordConfiguration.RequireUppercase == false); - } - - [Test] - public void UserPasswordConfiguration_HashAlgorithmType() - { - Assert.AreEqual(Constants.Security.AspNetCoreV3PasswordHashAlgorithmName, UserPasswordConfiguration.HashAlgorithmType); - } - - [Test] - public void UserPasswordConfiguration_MaxFailedAccessAttemptsBeforeLockout() - { - Assert.IsTrue(UserPasswordConfiguration.MaxFailedAccessAttemptsBeforeLockout == 5); - } - - [Test] - public void MemberPasswordConfiguration_RequiredLength() - { - Assert.IsTrue(MemberPasswordConfiguration.RequiredLength == 12); - } - - [Test] - public void MemberPasswordConfiguration_RequireNonLetterOrDigit() - { - Assert.IsTrue(MemberPasswordConfiguration.RequireNonLetterOrDigit == false); - } - - [Test] - public void MemberPasswordConfiguration_RequireDigit() - { - Assert.IsTrue(MemberPasswordConfiguration.RequireDigit == false); - } - - [Test] - public void MemberPasswordConfiguration_RequireLowercase() - { - Assert.IsTrue(MemberPasswordConfiguration.RequireLowercase == false); - } - - [Test] - public void MemberPasswordConfiguration_RequireUppercase() - { - Assert.IsTrue(MemberPasswordConfiguration.RequireUppercase == false); - } - - [Test] - public void MemberPasswordConfiguration_HashAlgorithmType() - { - Assert.AreEqual(Constants.Security.AspNetCoreV3PasswordHashAlgorithmName, MemberPasswordConfiguration.HashAlgorithmType); - } - - [Test] - public void MemberPasswordConfiguration_MaxFailedAccessAttemptsBeforeLockout() - { - Assert.IsTrue(MemberPasswordConfiguration.MaxFailedAccessAttemptsBeforeLockout == 5); - } - } -} diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs deleted file mode 100644 index 7916100396..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.Configuration; -using System.Diagnostics; -using System.IO; -using NUnit.Framework; -using Umbraco.Core.Configuration; -using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Tests.Integration.Implementations; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - public abstract class UmbracoSettingsTests - { - protected virtual bool TestingDefaults { get; set; } - - [SetUp] - public void Init() - { - var testHelper = new TestHelper(); - var config = new FileInfo(testHelper.MapPathForTestFiles("~/Umbraco.Configuration/Configurations/web.config")); - - var fileMap = new ExeConfigurationFileMap() { ExeConfigFilename = config.FullName }; - var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); - - Debug.WriteLine("Testing defaults? {0}", TestingDefaults); - if (TestingDefaults) - { - Settings = configuration.GetSection("umbracoConfiguration/defaultSettings") as UmbracoSettingsSection; - } - else - { - Settings = configuration.GetSection("umbracoConfiguration/settings") as UmbracoSettingsSection; - } - - Assert.IsNotNull(Settings); - } - private UmbracoSettingsSection Settings { get; set; } - - protected IWebRoutingSettings WebRoutingSettings => Settings.WebRouting; - protected IRequestHandlerSettings RequestHandlerSettings => Settings.RequestHandler; - protected ISecuritySettings SecuritySettings => Settings.Security; - protected IUserPasswordConfiguration UserPasswordConfiguration => Settings.Security.UserPasswordConfiguration; - protected IMemberPasswordConfiguration MemberPasswordConfiguration => Settings.Security.MemberPasswordConfiguration; - protected IContentSettings ContentSettings => Settings.Content; - } -} diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs deleted file mode 100644 index e85911d559..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs +++ /dev/null @@ -1,40 +0,0 @@ -using NUnit.Framework; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - [TestFixture] - public class WebRoutingElementDefaultTests : WebRoutingElementTests - { - protected override bool TestingDefaults => true; - - [Test] - public override void UrlProviderMode() - { - Assert.IsTrue(WebRoutingSettings.UrlProviderMode == "Auto"); - } - - [Test] - public void DisableAlternativeTemplates() - { - Assert.IsTrue(WebRoutingSettings.DisableAlternativeTemplates == false); - } - - [Test] - public void ValidateAlternativeTemplates() - { - Assert.IsTrue(WebRoutingSettings.ValidateAlternativeTemplates == false); - } - - [Test] - public void DisableFindContentByIdPath() - { - Assert.IsTrue(WebRoutingSettings.DisableFindContentByIdPath == false); - } - - [Test] - public void DisableRedirectUrlTracking() - { - Assert.IsTrue(WebRoutingSettings.DisableRedirectUrlTracking == false); - } - } -} diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs deleted file mode 100644 index 532b27494f..0000000000 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs +++ /dev/null @@ -1,26 +0,0 @@ -using NUnit.Framework; - -namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings -{ - [TestFixture] - public class WebRoutingElementTests : UmbracoSettingsTests - { - [Test] - public void TrySkipIisCustomErrors() - { - Assert.IsTrue(WebRoutingSettings.TrySkipIisCustomErrors == false); - } - - [Test] - public void InternalRedirectPreservesTemplate() - { - Assert.IsTrue(WebRoutingSettings.InternalRedirectPreservesTemplate == false); - } - - [Test] - public virtual void UrlProviderMode() - { - Assert.IsTrue(WebRoutingSettings.UrlProviderMode == "Auto"); - } - } -} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs index 4ac125e598..7a2a4c5965 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs @@ -72,8 +72,6 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Routing // Arrange var sourceUri = new Uri(sourceUrl, UriKind.Relative); var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(trailingSlash).Build(); - var mockRequestHandlerSettings = new Mock(); - mockRequestHandlerSettings.Setup(x => x.AddTrailingSlash).Returns(trailingSlash); var uriUtility = BuildUriUtility("/"); // Act diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/ConfigTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/ConfigTests.cs deleted file mode 100644 index 2e15381d18..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/ConfigTests.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Configuration; -using NUnit.Framework; -using Umbraco.Configuration.Legacy; -using Umbraco.Core; -using Umbraco.Core.Configuration; - -namespace Umbraco.Tests.ModelsBuilder -{ - [TestFixture] - public class ModelsBuilderConfigTests - { - [Test] - public void Test1() - { - var config = new ModelsBuilderConfig(modelsNamespace: "test1"); - Assert.AreEqual("test1", config.ModelsNamespace); - } - - [Test] - public void Test2() - { - var config = new ModelsBuilderConfig(modelsNamespace: "test2"); - Assert.AreEqual("test2", config.ModelsNamespace); - } - - [Test] - public void DefaultModelsNamespace() - { - var config = new ModelsBuilderConfig(); - Assert.AreEqual(Constants.ModelsBuilder.DefaultModelsNamespace, config.ModelsNamespace); - } - - [TestCase("c:/path/to/root", "~/dir/models", false, "c:\\path\\to\\root\\dir\\models")] - [TestCase("c:/path/to/root", "~/../../dir/models", true, "c:\\path\\dir\\models")] - [TestCase("c:/path/to/root", "c:/another/path/to/elsewhere", true, "c:\\another\\path\\to\\elsewhere")] - public void GetModelsDirectoryTests(string root, string config, bool acceptUnsafe, string expected) - { - Assert.AreEqual(expected, ModelsBuilderConfigExtensions.GetModelsDirectory(root, config, acceptUnsafe)); - } - - [TestCase("c:/path/to/root", "~/../../dir/models", false)] - [TestCase("c:/path/to/root", "c:/another/path/to/elsewhere", false)] - public void GetModelsDirectoryThrowsTests(string root, string config, bool acceptUnsafe) - { - Assert.Throws(() => - { - var modelsDirectory = ModelsBuilderConfigExtensions.GetModelsDirectory(root, config, acceptUnsafe); - }); - } - } -} diff --git a/src/Umbraco.Tests/Configurations/GlobalSettingsTests.cs b/src/Umbraco.Tests/Configurations/GlobalSettingsTests.cs index 1eac33b5b9..a7b148c8e5 100644 --- a/src/Umbraco.Tests/Configurations/GlobalSettingsTests.cs +++ b/src/Umbraco.Tests/Configurations/GlobalSettingsTests.cs @@ -1,6 +1,7 @@ using Moq; using NUnit.Framework; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Web.Hosting; @@ -18,10 +19,10 @@ namespace Umbraco.Tests.Configurations [TestCase("~/some-wacky/nestedPath", "/MyVirtualDir/NestedVDir/", "some-wacky-nestedpath")] public void Umbraco_Mvc_Area(string path, string rootPath, string outcome) { - var mockHostingSettings = Mock.Get(SettingsForTests.GenerateMockHostingSettings()); - mockHostingSettings.Setup(x => x.ApplicationVirtualPath).Returns(rootPath); - - var hostingEnvironment = new AspNetHostingEnvironment(mockHostingSettings.Object); + var hostingEnvironment = new AspNetHostingEnvironment(Microsoft.Extensions.Options.Options.Create(new HostingSettings() + { + ApplicationVirtualPath = rootPath + })); var globalSettings = new GlobalSettingsBuilder().WithUmbracoPath(path).Build(); diff --git a/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs b/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs index 1b58c93534..5f863c4538 100644 --- a/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs +++ b/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using Examine; +using Microsoft.Extensions.Options; using Moq; using NUnit.Framework; using Umbraco.Core; @@ -85,10 +86,10 @@ namespace Umbraco.Tests.Runtimes public class TestUmbracoApplication : UmbracoApplicationBase { public TestUmbracoApplication() : base(_logger, - ConfigModelConversionsFromLegacy.ConvertSecuritySettings(SettingsForTests.GenerateMockSecuritySettings()), + new SecuritySettings(), ConfigModelConversionsFromLegacy.ConvertGlobalSettings(SettingsForTests.DefaultGlobalSettings), new ConnectionStrings(), - _ioHelper, _profiler, new AspNetHostingEnvironment(_hostingSettings), new AspNetBackOfficeInfo(_globalSettings, _ioHelper, _logger, _settings)) + _ioHelper, _profiler, new AspNetHostingEnvironment(Options.Create(new HostingSettings())), new AspNetBackOfficeInfo(_globalSettings, _ioHelper, _logger, Options.Create(new WebRoutingSettings()))) { } @@ -96,9 +97,6 @@ namespace Umbraco.Tests.Runtimes private static readonly IIOHelper _ioHelper = TestHelper.IOHelper; private static readonly IProfiler _profiler = new TestProfiler(); private static readonly IGlobalSettings _globalSettings = SettingsForTests.DefaultGlobalSettings; - private static readonly IHostingSettings _hostingSettings = SettingsForTests.DefaultHostingSettings; - private static readonly IContentSettings _contentSettings = SettingsForTests.GenerateMockContentSettings(); - private static readonly IWebRoutingSettings _settings = SettingsForTests.GenerateMockWebRoutingSettings(); public IRuntime Runtime { get; private set; } diff --git a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs index b58301287b..09118de5dd 100644 --- a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs +++ b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs @@ -1,4 +1,5 @@ using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; namespace Umbraco.Tests.TestHelpers @@ -47,16 +48,6 @@ namespace Umbraco.Tests.TestHelpers internal static IGlobalSettings DefaultGlobalSettings => _settingsForTests.GetDefaultGlobalSettings(TestHelper.GetUmbracoVersion()); - internal static IHostingSettings DefaultHostingSettings => _settingsForTests.DefaultHostingSettings; - - public static IHostingSettings GenerateMockHostingSettings() => _settingsForTests.GenerateMockHostingSettings(); - - public static IWebRoutingSettings GenerateMockWebRoutingSettings() => _settingsForTests.GenerateMockWebRoutingSettings(); - - public static IRequestHandlerSettings GenerateMockRequestHandlerSettings() => _settingsForTests.GenerateMockRequestHandlerSettings(); - - public static ISecuritySettings GenerateMockSecuritySettings() => _settingsForTests.GenerateMockSecuritySettings(); - public static IUserPasswordConfiguration GenerateMockUserPasswordConfiguration() => _settingsForTests.GenerateMockUserPasswordConfiguration(); public static IMemberPasswordConfiguration GenerateMockMemberPasswordConfiguration() => _settingsForTests.GenerateMockMemberPasswordConfiguration(); diff --git a/src/Umbraco.Tests/TestHelpers/TestHelper.cs b/src/Umbraco.Tests/TestHelpers/TestHelper.cs index 92767498bc..7161e82323 100644 --- a/src/Umbraco.Tests/TestHelpers/TestHelper.cs +++ b/src/Umbraco.Tests/TestHelpers/TestHelper.cs @@ -35,6 +35,7 @@ using Umbraco.Web.Routing; using File = System.IO.File; using Umbraco.Tests.Common.Builders; using Microsoft.Extensions.Options; +using Umbraco.Core.Configuration.Models; namespace Umbraco.Tests.TestHelpers { @@ -62,10 +63,10 @@ namespace Umbraco.Tests.TestHelpers public override IBackOfficeInfo GetBackOfficeInfo() => new AspNetBackOfficeInfo( SettingsForTests.GenerateMockGlobalSettings(GetUmbracoVersion()), - TestHelper.IOHelper, Mock.Of(), SettingsForTests.GenerateMockWebRoutingSettings()); + TestHelper.IOHelper, Mock.Of(), Options.Create(new WebRoutingSettings())); public override IHostingEnvironment GetHostingEnvironment() - => new AspNetHostingEnvironment(SettingsForTests.DefaultHostingSettings); + => new AspNetHostingEnvironment(Options.Create(new HostingSettings())); public override IApplicationShutdownRegistry GetHostingEnvironmentLifetime() => new AspNetApplicationShutdownRegistry(); @@ -96,15 +97,13 @@ namespace Umbraco.Tests.TestHelpers public static IDbProviderFactoryCreator DbProviderFactoryCreator => _testHelperInternal.DbProviderFactoryCreator; public static IBulkSqlInsertProvider BulkSqlInsertProvider => _testHelperInternal.BulkSqlInsertProvider; public static IMarchal Marchal => _testHelperInternal.Marchal; - public static ICoreDebugSettings CoreDebugSettings => _testHelperInternal.CoreDebugSettings; + public static CoreDebugSettings CoreDebugSettings => _testHelperInternal.CoreDebugSettings; public static IIOHelper IOHelper => _testHelperInternal.IOHelper; public static IMainDom MainDom => _testHelperInternal.MainDom; public static UriUtility UriUtility => _testHelperInternal.UriUtility; - public static IWebRoutingSettings WebRoutingSettings => _testHelperInternal.WebRoutingSettings; - public static IEmailSender EmailSender { get; } = new EmailSender(Options.Create(new GlobalSettingsBuilder().Build())); diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs index ccac76fc88..541021613e 100644 --- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs +++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs @@ -15,6 +15,7 @@ using Umbraco.Core.Cache; using Umbraco.Core.Composing; using Umbraco.Core.Composing.CompositionExtensions; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Dictionary; using Umbraco.Core.Events; using Umbraco.Core.Hosting; @@ -137,7 +138,7 @@ namespace Umbraco.Tests.Testing protected virtual IProfilingLogger ProfilingLogger => Factory.GetInstance(); - protected IHostingEnvironment HostingEnvironment { get; } = new AspNetHostingEnvironment(TestHelpers.SettingsForTests.DefaultHostingSettings); + protected IHostingEnvironment HostingEnvironment { get; } = new AspNetHostingEnvironment(Microsoft.Extensions.Options.Options.Create(new HostingSettings())); protected IApplicationShutdownRegistry HostingLifetime { get; } = new AspNetApplicationShutdownRegistry(); protected IIpResolver IpResolver => Factory.GetInstance(); protected IBackOfficeInfo BackOfficeInfo => Factory.GetInstance(); @@ -174,9 +175,9 @@ namespace Umbraco.Tests.Testing TypeFinder = new TypeFinder(logger, new DefaultUmbracoAssemblyProvider(GetType().Assembly), new VaryingRuntimeHash()); var appCaches = GetAppCaches(); var globalSettings = new GlobalSettingsBuilder().Build(); - var settings = TestHelpers.SettingsForTests.GenerateMockWebRoutingSettings(); + var settings = new WebRoutingSettings(); - IBackOfficeInfo backOfficeInfo = new AspNetBackOfficeInfo(ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings), IOHelper, logger, settings); + IBackOfficeInfo backOfficeInfo = new AspNetBackOfficeInfo(ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings), IOHelper, logger, Microsoft.Extensions.Options.Options.Create(settings)); IIpResolver ipResolver = new AspNetIpResolver(); UmbracoVersion = new UmbracoVersion(); diff --git a/src/Umbraco.Web/AspNet/AspNetBackOfficeInfo.cs b/src/Umbraco.Web/AspNet/AspNetBackOfficeInfo.cs index 1e60fedeea..8992813b73 100644 --- a/src/Umbraco.Web/AspNet/AspNetBackOfficeInfo.cs +++ b/src/Umbraco.Web/AspNet/AspNetBackOfficeInfo.cs @@ -1,6 +1,8 @@ using System.Web; +using Microsoft.Extensions.Options; using Umbraco.Core; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.IO; using Umbraco.Core.Logging; @@ -12,14 +14,14 @@ namespace Umbraco.Web private readonly IGlobalSettings _globalSettings; private readonly IIOHelper _ioHelper; private readonly ILogger _logger; - private readonly IWebRoutingSettings _webRoutingSettings; + private readonly WebRoutingSettings _webRoutingSettings; - public AspNetBackOfficeInfo(IGlobalSettings globalSettings, IIOHelper ioHelper, ILogger logger, IWebRoutingSettings webRoutingSettings) + public AspNetBackOfficeInfo(IGlobalSettings globalSettings, IIOHelper ioHelper, ILogger logger, IOptions webRoutingSettings) { _globalSettings = globalSettings; _ioHelper = ioHelper; _logger = logger; - _webRoutingSettings = webRoutingSettings; + _webRoutingSettings = webRoutingSettings.Value; } /// diff --git a/src/Umbraco.Web/AspNet/AspNetHostingEnvironment.cs b/src/Umbraco.Web/AspNet/AspNetHostingEnvironment.cs index 5e7324236a..2ec6599939 100644 --- a/src/Umbraco.Web/AspNet/AspNetHostingEnvironment.cs +++ b/src/Umbraco.Web/AspNet/AspNetHostingEnvironment.cs @@ -2,8 +2,10 @@ using System; using System.Reflection; using System.Web; using System.Web.Hosting; +using Microsoft.Extensions.Options; using Umbraco.Core; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; namespace Umbraco.Web.Hosting @@ -11,18 +13,18 @@ namespace Umbraco.Web.Hosting public class AspNetHostingEnvironment : IHostingEnvironment { - private readonly IHostingSettings _hostingSettings; + private readonly HostingSettings _hostingSettings; private string _localTempPath; - public AspNetHostingEnvironment(IHostingSettings hostingSettings) + public AspNetHostingEnvironment(IOptions hostingSettings) { - _hostingSettings = hostingSettings ?? throw new ArgumentNullException(nameof(hostingSettings)); + _hostingSettings = hostingSettings.Value ?? throw new ArgumentNullException(nameof(hostingSettings)); SiteName = HostingEnvironment.SiteName; ApplicationId = HostingEnvironment.ApplicationID; // when we are not hosted (i.e. unit test or otherwise) we'll need to get the root path from the executing assembly ApplicationPhysicalPath = HostingEnvironment.ApplicationPhysicalPath ?? Assembly.GetExecutingAssembly().GetRootDirectorySafe(); - ApplicationVirtualPath = hostingSettings.ApplicationVirtualPath?.EnsureStartsWith('/') + ApplicationVirtualPath = _hostingSettings.ApplicationVirtualPath?.EnsureStartsWith('/') ?? HostingEnvironment.ApplicationVirtualPath?.EnsureStartsWith("/") ?? "/"; IISVersion = HttpRuntime.IISVersion; @@ -34,7 +36,7 @@ namespace Umbraco.Web.Hosting public string ApplicationVirtualPath { get; } - public bool IsDebugMode => HttpContext.Current?.IsDebuggingEnabled ?? _hostingSettings.DebugMode; + public bool IsDebugMode => HttpContext.Current?.IsDebuggingEnabled ?? _hostingSettings.Debug; /// public bool IsHosted => (HttpContext.Current != null || HostingEnvironment.IsHosted); diff --git a/src/Umbraco.Web/Editors/AuthenticationController.cs b/src/Umbraco.Web/Editors/AuthenticationController.cs index 5254b91672..f325ae82da 100644 --- a/src/Umbraco.Web/Editors/AuthenticationController.cs +++ b/src/Umbraco.Web/Editors/AuthenticationController.cs @@ -10,6 +10,7 @@ using System.Web; using System.Web.Http; using System.Web.Mvc; using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.Options; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Models; @@ -21,6 +22,7 @@ using Umbraco.Web.Security; using Umbraco.Web.WebApi; using Umbraco.Web.WebApi.Filters; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; using IUser = Umbraco.Core.Models.Membership.IUser; @@ -47,7 +49,7 @@ namespace Umbraco.Web.Editors private readonly IUserPasswordConfiguration _passwordConfiguration; private readonly IHostingEnvironment _hostingEnvironment; private readonly IRuntimeState _runtimeState; - private readonly ISecuritySettings _securitySettings; + private readonly SecuritySettings _securitySettings; private readonly IRequestAccessor _requestAccessor; private readonly IEmailSender _emailSender; @@ -62,7 +64,7 @@ namespace Umbraco.Web.Editors IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, - ISecuritySettings securitySettings, + IOptions securitySettings, IPublishedUrlProvider publishedUrlProvider, IRequestAccessor requestAccessor, IEmailSender emailSender) @@ -71,7 +73,7 @@ namespace Umbraco.Web.Editors _passwordConfiguration = passwordConfiguration ?? throw new ArgumentNullException(nameof(passwordConfiguration)); _hostingEnvironment = hostingEnvironment ?? throw new ArgumentNullException(nameof(hostingEnvironment)); _runtimeState = runtimeState ?? throw new ArgumentNullException(nameof(runtimeState)); - _securitySettings = securitySettings ?? throw new ArgumentNullException(nameof(securitySettings)); + _securitySettings = securitySettings.Value ?? throw new ArgumentNullException(nameof(securitySettings)); _requestAccessor = requestAccessor ?? throw new ArgumentNullException(nameof(securitySettings)); _emailSender = emailSender; } diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs index 7e0cd7062b..601956f217 100644 --- a/src/Umbraco.Web/Editors/BackOfficeController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeController.cs @@ -37,8 +37,8 @@ namespace Umbraco.Web.Editors private readonly IUmbracoVersion _umbracoVersion; private readonly IContentSettings _contentSettings; private readonly IHostingEnvironment _hostingEnvironment; - private readonly IRuntimeSettings _runtimeSettings; - private readonly ISecuritySettings _securitySettings; + private readonly RuntimeSettings _runtimeSettings; + private readonly SecuritySettings _securitySettings; public BackOfficeController( UmbracoFeatures features, @@ -50,8 +50,8 @@ namespace Umbraco.Web.Editors IUmbracoVersion umbracoVersion, IContentSettings contentSettings, IHostingEnvironment hostingEnvironment, - IRuntimeSettings settings, - ISecuritySettings securitySettings) + IOptions settings, + IOptions securitySettings) : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger) { @@ -59,8 +59,8 @@ namespace Umbraco.Web.Editors _umbracoVersion = umbracoVersion; _contentSettings = contentSettings ?? throw new ArgumentNullException(nameof(contentSettings)); _hostingEnvironment = hostingEnvironment; - _runtimeSettings = settings; - _securitySettings = securitySettings; + _runtimeSettings = settings.Value; + _securitySettings = securitySettings.Value; } protected BackOfficeSignInManager SignInManager => _signInManager ?? (_signInManager = OwinContext.GetBackOfficeSignInManager()); diff --git a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs index ce20dcf187..71c4bf1579 100644 --- a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs +++ b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs @@ -5,8 +5,10 @@ using System.Linq; using System.Runtime.Serialization; using System.Web; using System.Web.Mvc; +using Microsoft.Extensions.Options; using Umbraco.Core; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Hosting; using Umbraco.Core.WebAssets; @@ -33,8 +35,8 @@ namespace Umbraco.Web.Editors private readonly TreeCollection _treeCollection; private readonly IHttpContextAccessor _httpContextAccessor; private readonly IHostingEnvironment _hostingEnvironment; - private readonly IRuntimeSettings _settings; - private readonly ISecuritySettings _securitySettings; + private readonly RuntimeSettings _settings; + private readonly SecuritySettings _securitySettings; private readonly IRuntimeMinifier _runtimeMinifier; internal BackOfficeServerVariables( @@ -46,8 +48,8 @@ namespace Umbraco.Web.Editors IContentSettings contentSettings, TreeCollection treeCollection, IHostingEnvironment hostingEnvironment, - IRuntimeSettings settings, - ISecuritySettings securitySettings, + IOptions settings, + IOptions securitySettings, IRuntimeMinifier runtimeMinifier) { _urlHelper = urlHelper; @@ -58,8 +60,8 @@ namespace Umbraco.Web.Editors _contentSettings = contentSettings ?? throw new ArgumentNullException(nameof(contentSettings)); _treeCollection = treeCollection ?? throw new ArgumentNullException(nameof(treeCollection)); _hostingEnvironment = hostingEnvironment; - _settings = settings; - _securitySettings = securitySettings; + _settings = settings.Value; + _securitySettings = securitySettings.Value; _runtimeMinifier = runtimeMinifier; } diff --git a/src/Umbraco.Web/Mvc/ModelBindingExceptionFilter.cs b/src/Umbraco.Web/Mvc/ModelBindingExceptionFilter.cs index 60ca151ce6..b189867a89 100644 --- a/src/Umbraco.Web/Mvc/ModelBindingExceptionFilter.cs +++ b/src/Umbraco.Web/Mvc/ModelBindingExceptionFilter.cs @@ -3,8 +3,10 @@ using System.Configuration; using System.Net; using System.Text.RegularExpressions; using System.Web.Mvc; +using Microsoft.Extensions.Options; using Umbraco.Core.Configuration; using Umbraco.Core; +using Umbraco.Core.Configuration.Models; using Umbraco.Web.Composing; namespace Umbraco.Web.Mvc @@ -23,7 +25,7 @@ namespace Umbraco.Web.Mvc public void OnException(ExceptionContext filterContext) { - var settings = Current.Factory.GetInstance(); + var settings = Current.Factory.GetInstance>().Value; var disabled = settings?.Disabled ?? false; if (Current.PublishedModelFactory.IsLiveFactory() && !disabled diff --git a/src/Umbraco.Web/Security/BackOfficeCookieAuthenticationProvider.cs b/src/Umbraco.Web/Security/BackOfficeCookieAuthenticationProvider.cs index 26b85d6c39..4daf695912 100644 --- a/src/Umbraco.Web/Security/BackOfficeCookieAuthenticationProvider.cs +++ b/src/Umbraco.Web/Security/BackOfficeCookieAuthenticationProvider.cs @@ -1,11 +1,13 @@ using System; using System.Security.Claims; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using Microsoft.Owin; using Microsoft.Owin.Security.Cookies; using Umbraco.Core; using Umbraco.Core.BackOffice; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Services; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Hosting; @@ -21,21 +23,21 @@ namespace Umbraco.Web.Security private readonly IRuntimeState _runtimeState; private readonly IGlobalSettings _globalSettings; private readonly IHostingEnvironment _hostingEnvironment; - private readonly ISecuritySettings _securitySettings; + private readonly SecuritySettings _securitySettings; - public BackOfficeCookieAuthenticationProvider(IUserService userService, IRuntimeState runtimeState, IGlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, ISecuritySettings securitySettings) + public BackOfficeCookieAuthenticationProvider(IUserService userService, IRuntimeState runtimeState, IGlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, IOptions securitySettings) { _userService = userService; _runtimeState = runtimeState; _globalSettings = globalSettings; _hostingEnvironment = hostingEnvironment; - _securitySettings = securitySettings; + _securitySettings = securitySettings.Value; } public override void ResponseSignOut(CookieResponseSignOutContext context) { - + } diff --git a/src/Umbraco.Web/Security/GetUserSecondsMiddleWare.cs b/src/Umbraco.Web/Security/GetUserSecondsMiddleWare.cs index 5c3ab46101..83b6843a39 100644 --- a/src/Umbraco.Web/Security/GetUserSecondsMiddleWare.cs +++ b/src/Umbraco.Web/Security/GetUserSecondsMiddleWare.cs @@ -3,10 +3,12 @@ using System.Diagnostics; using System.Globalization; using System.Threading.Tasks; using System.Web; +using Microsoft.Extensions.Options; using Microsoft.Owin; using Microsoft.Owin.Logging; using Umbraco.Core; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Hosting; using Umbraco.Infrastructure.Configuration; @@ -25,7 +27,7 @@ namespace Umbraco.Web.Security { private readonly UmbracoBackOfficeCookieAuthOptions _authOptions; private readonly IGlobalSettings _globalSettings; - private readonly ISecuritySettings _security; + private readonly SecuritySettings _security; private readonly ILogger _logger; private readonly IHostingEnvironment _hostingEnvironment; @@ -33,14 +35,14 @@ namespace Umbraco.Web.Security OwinMiddleware next, UmbracoBackOfficeCookieAuthOptions authOptions, IGlobalSettings globalSettings, - ISecuritySettings security, + IOptions security, ILogger logger, IHostingEnvironment hostingEnvironment) : base(next) { _authOptions = authOptions ?? throw new ArgumentNullException(nameof(authOptions)); _globalSettings = globalSettings; - _security = security; + _security = security.Value; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _hostingEnvironment = hostingEnvironment; } diff --git a/src/Umbraco.Web/UmbracoApplicationBase.cs b/src/Umbraco.Web/UmbracoApplicationBase.cs index f40a230ae5..93167b76e0 100644 --- a/src/Umbraco.Web/UmbracoApplicationBase.cs +++ b/src/Umbraco.Web/UmbracoApplicationBase.cs @@ -45,12 +45,12 @@ namespace Umbraco.Web { //var configFactory = new ConfigsFactory(); - IHostingSettings hostingSettings = null; + HostingSettings hostingSettings = null; IGlobalSettings globalSettings = null; - ISecuritySettings securitySettings = null; - IWebRoutingSettings webRoutingSettings = null; + SecuritySettings securitySettings = null; + WebRoutingSettings webRoutingSettings = null; - var hostingEnvironment = new AspNetHostingEnvironment(hostingSettings); + var hostingEnvironment = new AspNetHostingEnvironment(Options.Create(hostingSettings)); var loggingConfiguration = new LoggingConfiguration( Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "App_Data\\Logs"), Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config\\serilog.config"), @@ -58,10 +58,10 @@ namespace Umbraco.Web var ioHelper = new IOHelper(hostingEnvironment); var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration); - var backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, ioHelper, logger, webRoutingSettings); + var backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, ioHelper, logger, Options.Create(webRoutingSettings)); var profiler = GetWebProfiler(hostingEnvironment); Umbraco.Composing.Current.Initialize(logger, - ConfigModelConversionsFromLegacy.ConvertSecuritySettings(securitySettings), + securitySettings, ConfigModelConversionsFromLegacy.ConvertGlobalSettings(globalSettings), ioHelper, hostingEnvironment, backOfficeInfo, profiler); Logger = logger; diff --git a/src/Umbraco.Web/UmbracoDefaultOwinStartup.cs b/src/Umbraco.Web/UmbracoDefaultOwinStartup.cs index 600b58cf06..a9682c25b2 100644 --- a/src/Umbraco.Web/UmbracoDefaultOwinStartup.cs +++ b/src/Umbraco.Web/UmbracoDefaultOwinStartup.cs @@ -1,9 +1,11 @@ using System; +using Microsoft.Extensions.Options; using Microsoft.Owin; using Owin; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Hosting; using Umbraco.Core.IO; @@ -30,7 +32,7 @@ namespace Umbraco.Web protected IUmbracoContextAccessor UmbracoContextAccessor => Current.UmbracoContextAccessor; protected IGlobalSettings GlobalSettings => Current.Factory.GetInstance(); protected IContentSettings ContentSettings => Current.Factory.GetInstance(); - protected ISecuritySettings SecuritySettings => Current.Factory.GetInstance(); + protected SecuritySettings SecuritySettings => Current.Factory.GetInstance>().Value; protected IUserPasswordConfiguration UserPasswordConfig => Current.Factory.GetInstance(); protected IRuntimeState RuntimeState => Current.RuntimeState; protected ServiceContext Services => Current.Services; diff --git a/src/Umbraco.Web/WebAssets/CDF/ClientDependencyComponent.cs b/src/Umbraco.Web/WebAssets/CDF/ClientDependencyComponent.cs index 0d8d4b8bf2..47dd0908dd 100644 --- a/src/Umbraco.Web/WebAssets/CDF/ClientDependencyComponent.cs +++ b/src/Umbraco.Web/WebAssets/CDF/ClientDependencyComponent.cs @@ -3,9 +3,11 @@ using System.Collections.Specialized; using System.IO; using ClientDependency.Core.CompositeFiles.Providers; using ClientDependency.Core.Config; +using Microsoft.Extensions.Options; using Umbraco.Core; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; using Umbraco.Web.Runtime; @@ -14,18 +16,18 @@ namespace Umbraco.Web.WebAssets.CDF [ComposeAfter(typeof(WebInitialComponent))] public sealed class ClientDependencyComponent : IComponent { - private readonly IHostingSettings _hostingSettings; + private readonly HostingSettings _hostingSettings; private readonly IHostingEnvironment _hostingEnvironment; - private readonly IRuntimeSettings _settings; + private readonly RuntimeSettings _settings; public ClientDependencyComponent( - IHostingSettings hostingSettings, + IOptions hostingSettings, IHostingEnvironment hostingEnvironment, - IRuntimeSettings settings) + IOptions settings) { - _hostingSettings = hostingSettings; + _hostingSettings = hostingSettings.Value; _hostingEnvironment = hostingEnvironment; - _settings = settings; + _settings = settings.Value; } public void Initialize()