From fe158ec7d940956795158232b344f07d70371d49 Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Mon, 21 Sep 2020 21:20:46 +0200 Subject: [PATCH] Removed custom validation of configuration enum values, reverting to framework based validation when binding direct to the enum values. --- .../Configuration/Models/ContentSettings.cs | 22 +-------------- .../Configuration/Models/HostingSettings.cs | 20 +------------ .../Models/ModelsBuilderSettings.cs | 25 ++--------------- .../Configuration/Models/SmtpSettings.cs | 19 +------------ .../Validation/ConfigurationValidatorBase.cs | 6 ---- .../Validation/ContentSettingsValidator.cs | 10 ------- .../Validation/GlobalSettingsValidator.cs | 6 ++-- .../Validation/HostingSettingsValidator.cs | 22 --------------- .../ModelsBuilderSettingsValidator.cs | 22 --------------- .../Models/WebRoutingSettings.cs | 2 +- src/Umbraco.Core/Routing/UrlProvider.cs | 9 +----- .../Users/EmailSender.cs | 2 +- .../BackOffice/DashboardReport.cs | 8 +++--- .../ModelsBuilderDashboardController.cs | 2 +- .../Building/Builder.cs | 2 +- .../Compose/ModelsBuilderComponent.cs | 2 +- .../Compose/ModelsBuilderComposer.cs | 2 +- .../LiveModelsProvider.cs | 2 +- .../ContentSettingsValidatorTests.cs | 12 +------- .../GlobalSettingsValidatorTests.cs | 12 +------- .../HostingSettingsValidatorTests.cs | 28 ------------------- .../ModelsBuilderSettingsValidatorTests.cs | 28 ------------------- .../AspNetCoreHostingEnvironment.cs | 2 +- .../UmbracoCoreServiceCollectionExtensions.cs | 8 ++---- .../Macros/MacroRenderer.cs | 2 +- .../AspNet/AspNetHostingEnvironment.cs | 2 +- src/Umbraco.Web/Macros/MacroRenderer.cs | 2 +- .../CDF/ClientDependencyComponent.cs | 2 +- 28 files changed, 30 insertions(+), 251 deletions(-) delete mode 100644 src/Umbraco.Core/Configuration/Models/Validation/HostingSettingsValidator.cs delete mode 100644 src/Umbraco.Core/Configuration/Models/Validation/ModelsBuilderSettingsValidator.cs delete mode 100644 src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/HostingSettingsValidatorTests.cs delete mode 100644 src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ModelsBuilderSettingsValidatorTests.cs diff --git a/src/Umbraco.Core/Configuration/Models/ContentSettings.cs b/src/Umbraco.Core/Configuration/Models/ContentSettings.cs index 8b1eb47b5b..65d7855dc7 100644 --- a/src/Umbraco.Core/Configuration/Models/ContentSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/ContentSettings.cs @@ -20,27 +20,7 @@ namespace Umbraco.Core.Configuration.Models public string PreviewBadge { get; set; } = DefaultPreviewBadge; - // We could bind the enum MacroErrorsBehaviour directly from configuration, but we're doing so - // via this string to allow for validation to occur on start-up that the configured value does - // match one of the enum values. - // Without this it'll fail on first use, and we'd have less control over the error message. - internal string MacroErrors { get; set; } = MacroErrorBehaviour.Inline.ToString(); - - public MacroErrorBehaviour MacroErrorsBehaviour - { - get - { - if (Enum.TryParse(MacroErrors, true, out var value)) - { - return value; - } - - // We need to return somethhing valid here as this property is evalulated during start-up, and if there's an error - // in the configured value it won't be parsed to the enum. - // At run-time though this default won't be used, as an invalid value will be picked up by ContentSettingsValidator. - return MacroErrorBehaviour.Inline; - } - } + public MacroErrorBehaviour MacroErrors { get; set; } = MacroErrorBehaviour.Inline; public IEnumerable DisallowedUploadFiles { get; set; } = new[] { "ashx", "aspx", "ascx", "config", "cshtml", "vbhtml", "asmx", "air", "axd" }; diff --git a/src/Umbraco.Core/Configuration/Models/HostingSettings.cs b/src/Umbraco.Core/Configuration/Models/HostingSettings.cs index a6dec1f104..b003315c56 100644 --- a/src/Umbraco.Core/Configuration/Models/HostingSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/HostingSettings.cs @@ -1,5 +1,4 @@ using System; -using Umbraco.Core.Configuration.Models.Validation; namespace Umbraco.Core.Configuration.Models { @@ -7,27 +6,10 @@ namespace Umbraco.Core.Configuration.Models { public string ApplicationVirtualPath { get; set; } - // See note on ContentSettings.MacroErrors - internal string LocalTempStorageLocation { get; set; } = LocalTempStorage.Default.ToString(); - /// /// Gets the configuration for the location of temporary files. /// - public LocalTempStorage LocalTempStorageLocationValue - { - get - { - if (Enum.TryParse(LocalTempStorageLocation, true, out var value)) - { - return value; - } - - // We need to return somethhing valid here as this property is evalulated during start-up, and if there's an error - // in the configured value it won't be parsed to the enum. - // At run-time though this default won't be used, as an invalid value will be picked up by HostingSettingsValidator. - return LocalTempStorage.Default; - } - } + public LocalTempStorage LocalTempStorageLocation { get; set; } = LocalTempStorage.Default; /// /// Gets a value indicating whether umbraco is running in [debug mode]. diff --git a/src/Umbraco.Core/Configuration/Models/ModelsBuilderSettings.cs b/src/Umbraco.Core/Configuration/Models/ModelsBuilderSettings.cs index faabcb8290..414165d2e4 100644 --- a/src/Umbraco.Core/Configuration/Models/ModelsBuilderSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/ModelsBuilderSettings.cs @@ -1,6 +1,4 @@ -using System; -using Umbraco.Configuration; -using Umbraco.Core.Configuration.Models.Validation; +using Umbraco.Configuration; namespace Umbraco.Core.Configuration.Models { @@ -20,27 +18,10 @@ namespace Umbraco.Core.Configuration.Models /// public bool Enable { get; set; } = false; - // See note on ContentSettings.MacroErrors - internal string ModelsMode { get; set; } = Configuration.ModelsMode.Nothing.ToString(); - /// /// Gets the models mode. /// - public ModelsMode ModelsModeValue - { - get - { - if (Enum.TryParse(ModelsMode, true, out var value)) - { - return value; - } - - // We need to return somethhing valid here as this property is evalulated during start-up, and if there's an error - // in the configured value it won't be parsed to the enum. - // At run-time though this default won't be used, as an invalid value will be picked up by ModelsBuilderSettingsValidator. - return Configuration.ModelsMode.Nothing; - } - } + public ModelsMode ModelsMode { get; set; } = ModelsMode.Nothing; /// /// Gets the models namespace. @@ -70,7 +51,7 @@ namespace Umbraco.Core.Configuration.Models set { - if (!ModelsModeValue.IsLive()) + if (!ModelsMode.IsLive()) { _flagOutOfDateModels = false; } diff --git a/src/Umbraco.Core/Configuration/Models/SmtpSettings.cs b/src/Umbraco.Core/Configuration/Models/SmtpSettings.cs index ecc3b71a78..7c19f28d87 100644 --- a/src/Umbraco.Core/Configuration/Models/SmtpSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/SmtpSettings.cs @@ -17,24 +17,7 @@ namespace Umbraco.Core.Configuration.Models public string PickupDirectoryLocation { get; set; } - // See notes on ContentSettings.MacroErrors - internal string DeliveryMethod { get; set; } = SmtpDeliveryMethod.Network.ToString(); - - public SmtpDeliveryMethod DeliveryMethodValue - { - get - { - if (Enum.TryParse(DeliveryMethod, true, out var value)) - { - return value; - } - - // We need to return somethhing valid here as this property is evalulated during start-up, and if there's an error - // in the configured value it won't be parsed to the enum. - // At run-time though this default won't be used, as an invalid value will be picked up by GlobalSettingsValidator. - return SmtpDeliveryMethod.Network; - } - } + public SmtpDeliveryMethod DeliveryMethod { get; set; } = SmtpDeliveryMethod.Network; public string Username { get; set; } diff --git a/src/Umbraco.Core/Configuration/Models/Validation/ConfigurationValidatorBase.cs b/src/Umbraco.Core/Configuration/Models/Validation/ConfigurationValidatorBase.cs index 4f69b326eb..fe8d077166 100644 --- a/src/Umbraco.Core/Configuration/Models/Validation/ConfigurationValidatorBase.cs +++ b/src/Umbraco.Core/Configuration/Models/Validation/ConfigurationValidatorBase.cs @@ -18,12 +18,6 @@ namespace Umbraco.Core.Configuration.Models.Validation return true; } - public bool ValidateStringIsOneOfEnumValues(string configPath, string value, Type enumType, out string message) - { - var validValues = Enum.GetValues(enumType).OfType().Select(x => x.ToString()); - return ValidateStringIsOneOfValidValues(configPath, value, validValues, out message); - } - public bool ValidateCollection(string configPath, IEnumerable values, string validationDescription, out string message) { if (values.Any(x => !x.IsValid())) diff --git a/src/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidator.cs b/src/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidator.cs index 05835f5357..9ed22f922e 100644 --- a/src/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidator.cs +++ b/src/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidator.cs @@ -9,11 +9,6 @@ namespace Umbraco.Core.Configuration.Models.Validation public ValidateOptionsResult Validate(string name, ContentSettings options) { string message; - if (!ValidateMacroErrors(options.MacroErrors, out message)) - { - return ValidateOptionsResult.Fail(message); - } - if (!ValidateError404Collection(options.Error404Collection, out message)) { return ValidateOptionsResult.Fail(message); @@ -27,11 +22,6 @@ namespace Umbraco.Core.Configuration.Models.Validation return ValidateOptionsResult.Success; } - private bool ValidateMacroErrors(string value, out string message) - { - return ValidateStringIsOneOfEnumValues($"{Constants.Configuration.ConfigContent}:{nameof(ContentSettings.MacroErrors)}", value, typeof(MacroErrorBehaviour), out message); - } - private bool ValidateError404Collection(IEnumerable values, out string message) { return ValidateCollection($"{Constants.Configuration.ConfigContent}:{nameof(ContentSettings.Error404Collection)}", values, "Culture and one and only one of ContentId, ContentKey and ContentXPath must be specified for each entry", out message); diff --git a/src/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidator.cs b/src/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidator.cs index b178126821..ca3fee7999 100644 --- a/src/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidator.cs +++ b/src/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidator.cs @@ -1,5 +1,4 @@ -using System.Net.Mail; -using Microsoft.Extensions.Options; +using Microsoft.Extensions.Options; namespace Umbraco.Core.Configuration.Models.Validation { @@ -18,8 +17,7 @@ namespace Umbraco.Core.Configuration.Models.Validation private bool ValidateSmtpSetting(SmtpSettings value, out string message) { - return ValidateOptionalEntry($"{Constants.Configuration.ConfigGlobal}:{nameof(GlobalSettings.Smtp)}", value, "A valid From email address is required", out message) && - (value == null || ValidateStringIsOneOfEnumValues("Global:Smtp:DeliveryMethod", value.DeliveryMethod, typeof(SmtpDeliveryMethod), out message)); + return ValidateOptionalEntry($"{Constants.Configuration.ConfigGlobal}:{nameof(GlobalSettings.Smtp)}", value, "A valid From email address is required", out message); } } } diff --git a/src/Umbraco.Core/Configuration/Models/Validation/HostingSettingsValidator.cs b/src/Umbraco.Core/Configuration/Models/Validation/HostingSettingsValidator.cs deleted file mode 100644 index b035a5318b..0000000000 --- a/src/Umbraco.Core/Configuration/Models/Validation/HostingSettingsValidator.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.Extensions.Options; - -namespace Umbraco.Core.Configuration.Models.Validation -{ - public class HostingSettingsValidator : ConfigurationValidatorBase, IValidateOptions - { - public ValidateOptionsResult Validate(string name, HostingSettings options) - { - if (!ValidateLocalTempStorageLocation(options.LocalTempStorageLocation, out var message)) - { - return ValidateOptionsResult.Fail(message); - } - - return ValidateOptionsResult.Success; - } - - private bool ValidateLocalTempStorageLocation(string value, out string message) - { - return ValidateStringIsOneOfEnumValues($"{Constants.Configuration.ConfigHosting}:{nameof(HostingSettings.LocalTempStorageLocation)}", value, typeof(LocalTempStorage), out message); - } - } -} diff --git a/src/Umbraco.Core/Configuration/Models/Validation/ModelsBuilderSettingsValidator.cs b/src/Umbraco.Core/Configuration/Models/Validation/ModelsBuilderSettingsValidator.cs deleted file mode 100644 index aeae0e97ca..0000000000 --- a/src/Umbraco.Core/Configuration/Models/Validation/ModelsBuilderSettingsValidator.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.Extensions.Options; - -namespace Umbraco.Core.Configuration.Models.Validation -{ - public class ModelsBuilderSettingsValidator : ConfigurationValidatorBase, IValidateOptions - { - public ValidateOptionsResult Validate(string name, ModelsBuilderSettings options) - { - if (!ValidateModelsMode(options.ModelsMode, out var message)) - { - return ValidateOptionsResult.Fail(message); - } - - return ValidateOptionsResult.Success; - } - - private bool ValidateModelsMode(string value, out string message) - { - return ValidateStringIsOneOfEnumValues($"{Constants.Configuration.ConfigModelsBuilder}:{nameof(ModelsBuilderSettings.ModelsMode)}", value, typeof(ModelsMode), out message); - } - } -} diff --git a/src/Umbraco.Core/Configuration/Models/WebRoutingSettings.cs b/src/Umbraco.Core/Configuration/Models/WebRoutingSettings.cs index 7e0c4d5d8c..476d58c913 100644 --- a/src/Umbraco.Core/Configuration/Models/WebRoutingSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/WebRoutingSettings.cs @@ -16,7 +16,7 @@ namespace Umbraco.Core.Configuration.Models public bool DisableRedirectUrlTracking { get; set; } = false; - public string UrlProviderMode { get; set; } = UrlMode.Auto.ToString(); + public UrlMode UrlProviderMode { get; set; } = UrlMode.Auto; public string UmbracoApplicationUrl { get; set; } } diff --git a/src/Umbraco.Core/Routing/UrlProvider.cs b/src/Umbraco.Core/Routing/UrlProvider.cs index 69d2e00276..9dd4a413a2 100644 --- a/src/Umbraco.Core/Routing/UrlProvider.cs +++ b/src/Umbraco.Core/Routing/UrlProvider.cs @@ -31,16 +31,9 @@ namespace Umbraco.Web.Routing _urlProviders = urlProviders; _mediaUrlProviders = mediaUrlProviders; _variationContextAccessor = variationContextAccessor ?? throw new ArgumentNullException(nameof(variationContextAccessor)); - var provider = UrlMode.Auto; - Mode = provider; - - if (Enum.TryParse(routingSettings.Value.UrlProviderMode, out provider)) - { - Mode = provider; - } + Mode = routingSettings.Value.UrlProviderMode; } - private readonly IUmbracoContextAccessor _umbracoContextAccessor; private readonly IEnumerable _urlProviders; private readonly IEnumerable _mediaUrlProviders; diff --git a/src/Umbraco.Infrastructure/Users/EmailSender.cs b/src/Umbraco.Infrastructure/Users/EmailSender.cs index 0aa7d12181..c45a9af0d3 100644 --- a/src/Umbraco.Infrastructure/Users/EmailSender.cs +++ b/src/Umbraco.Infrastructure/Users/EmailSender.cs @@ -89,7 +89,7 @@ namespace Umbraco.Core } var mailMessage = ConstructEmailMessage(message); - if (_globalSettings.Smtp.DeliveryMethodValue == SmtpDeliveryMethod.Network) + if (_globalSettings.Smtp.DeliveryMethod == SmtpDeliveryMethod.Network) { await client.SendAsync(mailMessage); } diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs index 8b792343a3..c615559920 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs @@ -19,7 +19,7 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice _mbErrors = mbErrors; } - public bool CanGenerate() => _config.ModelsModeValue.SupportsExplicitGeneration(); + public bool CanGenerate() => _config.ModelsMode.SupportsExplicitGeneration(); public bool AreModelsOutOfDate() => _outOfDateModels.IsOutOfDate; @@ -41,13 +41,13 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice sb.Append("
    "); sb.Append("
  • The models factory is "); - sb.Append(_config.EnableFactory || _config.ModelsModeValue == ModelsMode.PureLive + sb.Append(_config.EnableFactory || _config.ModelsMode == ModelsMode.PureLive ? "enabled" : "not enabled. Umbraco will not use models"); sb.Append(".
  • "); - sb.Append(_config.ModelsModeValue != ModelsMode.Nothing - ? $"
  • {_config.ModelsModeValue} models are enabled.
  • " + sb.Append(_config.ModelsMode != ModelsMode.Nothing + ? $"
  • {_config.ModelsMode} models are enabled.
  • " : "
  • No models mode is specified: models will not be generated.
  • "); sb.Append($"
  • Models namespace is {_config.ModelsNamespace}.
  • "); diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs index 0240671c13..3adbc0df2c 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs @@ -51,7 +51,7 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice { var config = _config; - if (!config.ModelsModeValue.SupportsExplicitGeneration()) + if (!config.ModelsMode.SupportsExplicitGeneration()) { var result2 = new BuildResult { Success = false, Message = "Models generation is not enabled." }; return Ok(result2); diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs b/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs index 871e221bbc..aa7ab40ba5 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs @@ -92,7 +92,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Building { TypeModel.MapModelTypes(_typeModels, ModelsNamespace); - var pureLive = Config.ModelsModeValue == ModelsMode.PureLive; + var pureLive = Config.ModelsMode == ModelsMode.PureLive; // for the first two of these two tests, // always throw, even in purelive: cannot happen unless ppl start fidling with attributes to rename diff --git a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs index b490a9b62f..837bf18dae 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs @@ -55,7 +55,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Compose if (_config.Enable) FileService.SavingTemplate += FileService_SavingTemplate; - if (_config.ModelsModeValue.IsLiveNotPure()) + if (_config.ModelsMode.IsLiveNotPure()) _liveModelsProvider.Install(); if (_config.FlagOutOfDateModels) diff --git a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs index d2ec4a4a09..3e63fb8e94 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs @@ -28,7 +28,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Compose composition.RegisterUnique(factory => { var config = factory.GetInstance>().Value; - if (config.ModelsModeValue == ModelsMode.PureLive) + if (config.ModelsMode == ModelsMode.PureLive) { composition.RegisterUnique(); diff --git a/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs b/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs index 1161d4879e..628e66bc6a 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs @@ -26,7 +26,7 @@ namespace Umbraco.ModelsBuilder.Embedded private readonly IHostingEnvironment _hostingEnvironment; // we do not manage pure live here - internal bool IsEnabled => _config.ModelsModeValue.IsLiveNotPure(); + internal bool IsEnabled => _config.ModelsMode.IsLiveNotPure(); public LiveModelsProvider(ILogger logger, IOptions config, ModelsGenerator modelGenerator, ModelsGenerationError mbErrors, IHostingEnvironment hostingEnvironment) { diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidatorTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidatorTests.cs index e22752d12f..c90e4e4c7d 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidatorTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidatorTests.cs @@ -17,15 +17,6 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation Assert.True(result.Succeeded); } - [Test] - public void Returns_Fail_For_Configuration_With_Invalid_MacroErrors_Field() - { - var validator = new ContentSettingsValidator(); - var options = BuildContentSettings(macroErrors: "invalid"); - var result = validator.Validate("settings", options); - Assert.False(result.Succeeded); - } - [Test] public void Returns_Fail_For_Configuration_With_Invalid_Error404Collection_Due_To_Duplicate_Id() { @@ -53,11 +44,10 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation Assert.False(result.Succeeded); } - private static ContentSettings BuildContentSettings(string macroErrors = "inline", string culture = "en-US", string contentXPath = "", string autoFillImagePropertyAlias = "testAlias") + private static ContentSettings BuildContentSettings(string culture = "en-US", string contentXPath = "", string autoFillImagePropertyAlias = "testAlias") { return new ContentSettings { - MacroErrors = macroErrors, Error404Collection = new ContentErrorPage[] { new ContentErrorPage { Culture = culture, ContentId = 1, ContentXPath = contentXPath }, diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs index 2bf227d686..3cc0532db2 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs @@ -25,23 +25,13 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation Assert.False(result.Succeeded); } - [Test] - public void Returns_Fail_For_Configuration_With_Invalid_SmtpDeliveryMethod_Field() - { - var validator = new GlobalSettingsValidator(); - var options = BuildGlobalSettings(smtpDeliveryMethod: "invalid"); - var result = validator.Validate("settings", options); - Assert.False(result.Succeeded); - } - - private static GlobalSettings BuildGlobalSettings(string smtpEmail = "test@test.com", string smtpDeliveryMethod = "Network") + private static GlobalSettings BuildGlobalSettings(string smtpEmail = "test@test.com") { return new GlobalSettings { Smtp = new SmtpSettings { From = smtpEmail, - DeliveryMethod = smtpDeliveryMethod, } }; } diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/HostingSettingsValidatorTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/HostingSettingsValidatorTests.cs deleted file mode 100644 index 2122a62c64..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/HostingSettingsValidatorTests.cs +++ /dev/null @@ -1,28 +0,0 @@ -using NUnit.Framework; -using Umbraco.Core.Configuration.Models; -using Umbraco.Core.Configuration.Models.Validation; - -namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation -{ - [TestFixture] - public class HostingSettingsValidatorTests - { - [Test] - public void Returns_Success_ForValid_Configuration() - { - var validator = new HostingSettingsValidator(); - var options = new HostingSettings(); - var result = validator.Validate("settings", options); - Assert.True(result.Succeeded); - } - - [Test] - public void Returns_Fail_For_Configuration_With_Invalid_LocalTempStorage_Field() - { - var validator = new HostingSettingsValidator(); - var options = new HostingSettings { LocalTempStorageLocation = "invalid" }; - var result = validator.Validate("settings", options); - Assert.False(result.Succeeded); - } - } -} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ModelsBuilderSettingsValidatorTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ModelsBuilderSettingsValidatorTests.cs deleted file mode 100644 index fe71509095..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ModelsBuilderSettingsValidatorTests.cs +++ /dev/null @@ -1,28 +0,0 @@ -using NUnit.Framework; -using Umbraco.Core.Configuration.Models; -using Umbraco.Core.Configuration.Models.Validation; - -namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation -{ - [TestFixture] - public class ModelsBuilderSettingsValidatorTests - { - [Test] - public void Returns_Success_ForValid_Configuration() - { - var validator = new ModelsBuilderSettingsValidator(); - var options = new ModelsBuilderSettings(); - var result = validator.Validate("settings", options); - Assert.True(result.Succeeded); - } - - [Test] - public void Returns_Fail_For_Configuration_With_Invalid_ModelsMode_Field() - { - var validator = new ModelsBuilderSettingsValidator(); - var options = new ModelsBuilderSettings { ModelsMode = "invalid" }; - var result = validator.Validate("settings", options); - Assert.False(result.Succeeded); - } - } -} diff --git a/src/Umbraco.Web.Common/AspNetCore/AspNetCoreHostingEnvironment.cs b/src/Umbraco.Web.Common/AspNetCore/AspNetCoreHostingEnvironment.cs index d5e4a9f258..ede121a9f7 100644 --- a/src/Umbraco.Web.Common/AspNetCore/AspNetCoreHostingEnvironment.cs +++ b/src/Umbraco.Web.Common/AspNetCore/AspNetCoreHostingEnvironment.cs @@ -45,7 +45,7 @@ namespace Umbraco.Web.Common.AspNetCore if (_localTempPath != null) return _localTempPath; - switch (_hostingSettings.CurrentValue.LocalTempStorageLocationValue) + switch (_hostingSettings.CurrentValue.LocalTempStorageLocation) { case LocalTempStorage.AspNetTemp: diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs index d357916791..c5f3c3dfe8 100644 --- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs +++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs @@ -129,18 +129,16 @@ namespace Umbraco.Extensions services.AddSingleton, ContentSettingsValidator>(); services.AddSingleton, GlobalSettingsValidator>(); - services.AddSingleton, HostingSettingsValidator>(); - services.AddSingleton, ModelsBuilderSettingsValidator>(); services.AddSingleton, RequestHandlerSettingsValidator>(); services.Configure(configuration.GetSection(Constants.Configuration.ConfigActiveDirectory)); services.Configure(configuration.GetSection("ConnectionStrings"), o => o.BindNonPublicProperties = true); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigContent), o => o.BindNonPublicProperties = true); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigContent)); services.Configure(configuration.GetSection(Constants.Configuration.ConfigCoreDebug)); services.Configure(configuration.GetSection(Constants.Configuration.ConfigExceptionFilter)); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigGlobal), o => o.BindNonPublicProperties = true); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigGlobal)); services.Configure(configuration.GetSection(Constants.Configuration.ConfigHealthChecks)); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigHosting), o => o.BindNonPublicProperties = true); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigHosting)); services.Configure(configuration.GetSection(Constants.Configuration.ConfigImaging)); services.Configure(configuration.GetSection(Constants.Configuration.ConfigExamine)); services.Configure(configuration.GetSection(Constants.Configuration.ConfigKeepAlive)); diff --git a/src/Umbraco.Web.Common/Macros/MacroRenderer.cs b/src/Umbraco.Web.Common/Macros/MacroRenderer.cs index 5114f4a20f..58c1e59338 100644 --- a/src/Umbraco.Web.Common/Macros/MacroRenderer.cs +++ b/src/Umbraco.Web.Common/Macros/MacroRenderer.cs @@ -290,7 +290,7 @@ namespace Umbraco.Web.Macros Alias = macro.Alias, MacroSource = macro.MacroSource, Exception = e, - Behaviour = _contentSettings.MacroErrorsBehaviour + Behaviour = _contentSettings.MacroErrors }; switch (macroErrorEventArgs.Behaviour) diff --git a/src/Umbraco.Web/AspNet/AspNetHostingEnvironment.cs b/src/Umbraco.Web/AspNet/AspNetHostingEnvironment.cs index dae6b1ffbe..2ec6599939 100644 --- a/src/Umbraco.Web/AspNet/AspNetHostingEnvironment.cs +++ b/src/Umbraco.Web/AspNet/AspNetHostingEnvironment.cs @@ -63,7 +63,7 @@ namespace Umbraco.Web.Hosting if (_localTempPath != null) return _localTempPath; - switch (_hostingSettings.LocalTempStorageLocationValue) + switch (_hostingSettings.LocalTempStorageLocation) { case LocalTempStorage.AspNetTemp: return _localTempPath = System.IO.Path.Combine(HttpRuntime.CodegenDir, "UmbracoData"); diff --git a/src/Umbraco.Web/Macros/MacroRenderer.cs b/src/Umbraco.Web/Macros/MacroRenderer.cs index 8c11478c78..8d13c03e8b 100644 --- a/src/Umbraco.Web/Macros/MacroRenderer.cs +++ b/src/Umbraco.Web/Macros/MacroRenderer.cs @@ -290,7 +290,7 @@ namespace Umbraco.Web.Macros Alias = macro.Alias, MacroSource = macro.MacroSource, Exception = e, - Behaviour = _contentSettings.MacroErrorsBehaviour + Behaviour = _contentSettings.MacroErrors }; switch (macroErrorEventArgs.Behaviour) diff --git a/src/Umbraco.Web/WebAssets/CDF/ClientDependencyComponent.cs b/src/Umbraco.Web/WebAssets/CDF/ClientDependencyComponent.cs index 1f357d65b5..47dd0908dd 100644 --- a/src/Umbraco.Web/WebAssets/CDF/ClientDependencyComponent.cs +++ b/src/Umbraco.Web/WebAssets/CDF/ClientDependencyComponent.cs @@ -46,7 +46,7 @@ namespace Umbraco.Web.WebAssets.CDF // Now we need to detect if we are running 'Umbraco.Core.LocalTempStorage' as EnvironmentTemp and in that case we want to change the CDF file // location to be there - if (_hostingSettings.LocalTempStorageLocationValue == LocalTempStorage.EnvironmentTemp) + if (_hostingSettings.LocalTempStorageLocation == LocalTempStorage.EnvironmentTemp) { var cachePath = _hostingEnvironment.LocalTempPath;