diff --git a/src/Umbraco.Configuration/Legacy/GlobalSettings.cs b/src/Umbraco.Configuration/Legacy/GlobalSettings.cs
deleted file mode 100644
index 8dee6e79dc..0000000000
--- a/src/Umbraco.Configuration/Legacy/GlobalSettings.cs
+++ /dev/null
@@ -1,378 +0,0 @@
-using System;
-using System.Configuration;
-using System.Linq;
-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
-{
- // TODO: Replace checking for if the app settings exist and returning an empty string, instead return the defaults!
- // TODO: need to massively cleanup these configuration classes
-
- ///
- /// The GlobalSettings Class contains general settings information for the entire Umbraco instance based on information from web.config appsettings
- ///
- public class GlobalSettings : IGlobalSettings
- {
-
- // TODO these should not be static
- private static string _reservedPaths;
- private static string _reservedUrls;
-
- //ensure the built on (non-changeable) reserved paths are there at all times
- internal const string StaticReservedPaths = "~/app_plugins/,~/install/,~/mini-profiler-resources/,"; //must end with a comma!
- internal const string StaticReservedUrls = "~/config/splashes/noNodes.aspx,~/.well-known,"; //must end with a comma!
-
- ///
- /// Used in unit testing to reset all config items that were set with property setters (i.e. did not come from config)
- ///
- private static void ResetInternal()
- {
- _reservedPaths = null;
- _reservedUrls = null;
- }
-
- ///
- /// Resets settings that were set programmatically, to their initial values.
- ///
- /// To be used in unit tests.
- internal static void Reset()
- {
- ResetInternal();
- }
-
-
- public bool IsSmtpServerConfigured
- {
- get
- {
- var smtpSettings = SmtpSettings;
-
- if (smtpSettings is null) return false;
-
- if (!(smtpSettings.From is null)) return true;
- if (!(smtpSettings.Host is null)) return true;
- if (!(smtpSettings.PickupDirectoryLocation is null)) return true;
-
- return false;
- }
- }
-
- public SmtpSettings SmtpSettings
- {
- get
- {
- var smtpSection = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as ConfigurationSection;
- if (smtpSection is null) return null;
-
- var result = new SmtpSettings();
- var from = smtpSection.ElementInformation.Properties["from"];
- if (@from != null
- && @from.Value is string fromPropValue
- && string.IsNullOrEmpty(fromPropValue) == false
- && !string.Equals("noreply@example.com", fromPropValue, StringComparison.OrdinalIgnoreCase))
- {
- result.From = fromPropValue;
- }
-
- var specifiedPickupDirectorySection = ConfigurationManager.GetSection("system.net/mailSettings/smtp/specifiedPickupDirectory") as ConfigurationSection;
- var pickupDirectoryLocation = specifiedPickupDirectorySection?.ElementInformation.Properties["pickupDirectoryLocation"];
- if (pickupDirectoryLocation != null
- && pickupDirectoryLocation.Value is string pickupDirectoryLocationPropValue
- && string.IsNullOrEmpty(pickupDirectoryLocationPropValue) == false)
- {
- result.PickupDirectoryLocation = pickupDirectoryLocationPropValue;
- }
-
- // SmtpClient can magically read the section system.net/mailSettings/smtp/network, witch is always
- // null if we use ConfigurationManager.GetSection. SmtpSection does not exist in .Net Standard
- var smtpClient = new SmtpClient();
-
- result.Host = smtpClient.Host;
- result.Port = smtpClient.Port;
-
- return result;
-
- }
- }
-
- ///
- /// Gets the reserved urls from web.config.
- ///
- /// The reserved urls.
- public string ReservedUrls
- {
- get
- {
- if (_reservedUrls != null) return _reservedUrls;
-
- var urls = ConfigurationManager.AppSettings.ContainsKey(Constants.AppSettings.ReservedUrls)
- ? ConfigurationManager.AppSettings[Constants.AppSettings.ReservedUrls]
- : string.Empty;
-
- //ensure the built on (non-changeable) reserved paths are there at all times
- _reservedUrls = StaticReservedUrls + urls;
- return _reservedUrls;
- }
- internal set => _reservedUrls = value;
- }
-
- ///
- /// Gets the reserved paths from web.config
- ///
- /// The reserved paths.
- public string ReservedPaths
- {
- get
- {
- if (_reservedPaths != null) return _reservedPaths;
-
- var reservedPaths = StaticReservedPaths;
- var umbPath = ConfigurationManager.AppSettings.ContainsKey(Constants.AppSettings.UmbracoPath) && !ConfigurationManager.AppSettings[Constants.AppSettings.UmbracoPath].IsNullOrWhiteSpace()
- ? ConfigurationManager.AppSettings[Constants.AppSettings.UmbracoPath]
- : "~/umbraco";
- //always add the umbraco path to the list
- reservedPaths += umbPath.EnsureEndsWith(',');
-
- var allPaths = ConfigurationManager.AppSettings.ContainsKey(Constants.AppSettings.ReservedPaths)
- ? ConfigurationManager.AppSettings[Constants.AppSettings.ReservedPaths]
- : string.Empty;
-
- _reservedPaths = reservedPaths + allPaths;
- return _reservedPaths;
- }
- }
-
-
-
-
- ///
- /// Gets or sets the configuration status. This will return the version number of the currently installed umbraco instance.
- ///
- /// The configuration status.
- public string ConfigurationStatus
- {
- get
- {
- return ConfigurationManager.AppSettings.ContainsKey(Constants.AppSettings.ConfigurationStatus)
- ? ConfigurationManager.AppSettings[Constants.AppSettings.ConfigurationStatus]
- : string.Empty;
- }
- set
- {
- SaveSetting(Constants.AppSettings.ConfigurationStatus, value, Current.IOHelper); //TODO remove
- }
- }
-
- ///
- /// Saves a setting into the configuration file.
- ///
- /// Key of the setting to be saved.
- /// Value of the setting to be saved.
- internal static void SaveSetting(string key, string value, IIOHelper ioHelper)
- {
- var fileName = ioHelper.MapPath("~/web.config");
- var xml = XDocument.Load(fileName, LoadOptions.PreserveWhitespace);
-
- var appSettings = xml.Root.DescendantsAndSelf("appSettings").Single();
-
- // Update appSetting if it exists, or else create a new appSetting for the given key and value
- var setting = appSettings.Descendants("add").FirstOrDefault(s => s.Attribute("key").Value == key);
- if (setting == null)
- appSettings.Add(new XElement("add", new XAttribute("key", key), new XAttribute("value", value)));
- else
- setting.Attribute("value").Value = value;
-
- xml.Save(fileName, SaveOptions.DisableFormatting);
- ConfigurationManager.RefreshSection("appSettings");
- }
-
-
- ///
- /// Gets the time out in minutes.
- ///
- /// The time out in minutes.
- public int TimeOutInMinutes
- {
- get
- {
- try
- {
- return int.Parse(ConfigurationManager.AppSettings[Constants.AppSettings.TimeOutInMinutes]);
- }
- catch
- {
- return 20;
- }
- }
- }
-
- ///
- /// Returns the number of days that should take place between version checks.
- ///
- /// The version check period in days (0 = never).
- public int VersionCheckPeriod
- {
- get
- {
- try
- {
- var val = ConfigurationManager.AppSettings[Constants.AppSettings.VersionCheckPeriod];
- if (!(val is null))
- {
- return int.Parse(val);
- }
- }
- catch
- {
- // Ignore
- }
- return 7;
- }
- }
-
-
-
-
- ///
- /// Gets the default UI language.
- ///
- /// The default UI language.
- // ReSharper disable once InconsistentNaming
- public string DefaultUILanguage
- {
- get
- {
- return ConfigurationManager.AppSettings.ContainsKey(Constants.AppSettings.DefaultUILanguage)
- ? ConfigurationManager.AppSettings[Constants.AppSettings.DefaultUILanguage]
- : string.Empty;
- }
- }
-
- ///
- /// Gets a value indicating whether umbraco should hide top level nodes from generated urls.
- ///
- ///
- /// true if umbraco hides top level nodes from urls; otherwise, false.
- ///
- public bool HideTopLevelNodeFromPath
- {
- get
- {
- try
- {
- return bool.Parse(ConfigurationManager.AppSettings[Constants.AppSettings.HideTopLevelNodeFromPath]);
- }
- catch
- {
- return false;
- }
- }
- }
-
- ///
- /// Gets a value indicating whether umbraco should force a secure (https) connection to the backoffice.
- ///
- public bool UseHttps
- {
- get
- {
- try
- {
- return bool.Parse(ConfigurationManager.AppSettings[Constants.AppSettings.UseHttps]);
- }
- catch
- {
- return false;
- }
- }
- }
-
- private string _umbracoMediaPath = null;
- public string UmbracoMediaPath => GetterWithDefaultValue(Constants.AppSettings.UmbracoMediaPath, "~/media", ref _umbracoMediaPath);
-
- private string _umbracoScriptsPath = null;
- public string UmbracoScriptsPath => GetterWithDefaultValue(Constants.AppSettings.UmbracoScriptsPath, "~/scripts", ref _umbracoScriptsPath);
-
- private string _umbracoCssPath = null;
- public string UmbracoCssPath => GetterWithDefaultValue(Constants.AppSettings.UmbracoCssPath, "~/css", ref _umbracoCssPath);
-
- private string _umbracoPath = null;
- public string UmbracoPath => GetterWithDefaultValue(Constants.AppSettings.UmbracoPath, "~/umbraco", ref _umbracoPath);
-
- private bool _installMissingDatabase;
- public bool InstallMissingDatabase => GetterWithDefaultValue("Umbraco.Core.RuntimeState.InstallMissingDatabase", false, ref _installMissingDatabase);
-
- private bool _installEmptyDatabase;
- public bool InstallEmptyDatabase => GetterWithDefaultValue("Umbraco.Core.RuntimeState.InstallEmptyDatabase", false, ref _installEmptyDatabase);
-
- private bool _disableElectionForSingleServer;
- public bool DisableElectionForSingleServer => GetterWithDefaultValue(Constants.AppSettings.DisableElectionForSingleServer, false, ref _disableElectionForSingleServer);
-
- private string _registerType;
- public string RegisterType => GetterWithDefaultValue(Constants.AppSettings.RegisterType, string.Empty, ref _registerType);
-
- private string _databaseFactoryServerVersion;
- public string DatabaseFactoryServerVersion => GetterWithDefaultValue(Constants.AppSettings.Debug.DatabaseFactoryServerVersion, string.Empty, ref _databaseFactoryServerVersion);
-
-
-
- private string _iconsPath;
- ///
- /// Gets the path to folder containing the icons used in the umbraco backoffice (/umbraco/assets/icons by default).
- ///
- /// The icons path.
- public string IconsPath => GetterWithDefaultValue(Constants.AppSettings.IconsPath, $"{UmbracoPath}/assets/icons", ref _iconsPath);
-
- private string _mainDomLock;
-
- public string MainDomLock => GetterWithDefaultValue(Constants.AppSettings.MainDomLock, string.Empty, ref _mainDomLock);
-
- private T GetterWithDefaultValue(string appSettingKey, T defaultValue, ref T backingField)
- {
- if (backingField != null) return backingField;
-
- if (ConfigurationManager.AppSettings.ContainsKey(appSettingKey))
- {
- try
- {
- var value = ConfigurationManager.AppSettings[appSettingKey];
-
- backingField = (T)Convert.ChangeType(value, typeof(T));
- }
- catch
- {
- /* ignore and use default value */
- backingField = defaultValue;
- }
- }
- else
- {
- backingField = defaultValue;
- }
-
- return backingField;
- }
-
- ///
- /// Gets the path to the razor file used when no published content is available.
- ///
- public string NoNodesViewPath
- {
- get
- {
- var configuredValue = ConfigurationManager.AppSettings[Constants.AppSettings.NoNodesViewPath];
- if (!string.IsNullOrWhiteSpace(configuredValue))
- {
- return configuredValue;
- }
-
- return "~/config/splashes/NoNodes.cshtml";
- }
- }
- }
-}
diff --git a/src/Umbraco.Configuration/Models/GlobalSettings.cs b/src/Umbraco.Configuration/Models/GlobalSettings.cs
deleted file mode 100644
index 5dfac1f8a3..0000000000
--- a/src/Umbraco.Configuration/Models/GlobalSettings.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System;
-using System.Linq;
-using System.Net.Mail;
-using Microsoft.Extensions.Configuration;
-using Umbraco.Core;
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Models;
-
-namespace Umbraco.Configuration.Models
-{
- ///
- /// The GlobalSettings Class contains general settings information for the entire Umbraco instance based on information
- /// from web.config appsettings
- ///
- internal class GlobalSettings : IGlobalSettings
- {
- private const string Prefix = Constants.Configuration.ConfigGlobalPrefix;
-
- internal const string
- StaticReservedPaths = "~/app_plugins/,~/install/,~/mini-profiler-resources/,"; //must end with a comma!
-
- internal const string
- StaticReservedUrls = "~/config/splashes/noNodes.aspx,~/.well-known,"; //must end with a comma!
-
- private readonly IConfiguration _configuration;
-
- public GlobalSettings(IConfiguration configuration)
- {
- _configuration = configuration;
- }
-
- public string ReservedUrls => _configuration.GetValue(Prefix + "ReservedUrls", StaticReservedUrls);
- public string ReservedPaths => _configuration.GetValue(Prefix + "ReservedPaths", StaticReservedPaths);
-
- // TODO: https://github.com/umbraco/Umbraco-CMS/issues/4238 - stop having version in web.config appSettings
- public string ConfigurationStatus
- {
- get => _configuration.GetValue(Prefix + "ConfigurationStatus");
- set => throw new NotImplementedException("We should remove this and only use the value from database");
- }
-
- public int TimeOutInMinutes => _configuration.GetValue(Prefix + "TimeOutInMinutes", 20);
- public string DefaultUILanguage => _configuration.GetValue(Prefix + "DefaultUILanguage", "en-US");
-
- public bool HideTopLevelNodeFromPath =>
- _configuration.GetValue(Prefix + "HideTopLevelNodeFromPath", true);
-
- public bool UseHttps => _configuration.GetValue(Prefix + "UseHttps", false);
- public int VersionCheckPeriod => _configuration.GetValue(Prefix + "VersionCheckPeriod", 7);
- public string UmbracoPath => _configuration.GetValue(Prefix + "UmbracoPath", "~/umbraco");
- public string IconsPath => _configuration.GetValue(Prefix + "IconsPath", $"{UmbracoPath}/assets/icons");
-
- public string UmbracoCssPath => _configuration.GetValue(Prefix + "UmbracoCssPath", "~/css");
-
- public string UmbracoScriptsPath =>
- _configuration.GetValue(Prefix + "UmbracoScriptsPath", "~/scripts");
-
- public string UmbracoMediaPath => _configuration.GetValue(Prefix + "UmbracoMediaPath", "~/media");
-
- public bool InstallMissingDatabase =>
- _configuration.GetValue(Prefix + "InstallMissingDatabase", false);
-
- public bool InstallEmptyDatabase => _configuration.GetValue(Prefix + "InstallEmptyDatabase", false);
-
- public bool DisableElectionForSingleServer =>
- _configuration.GetValue(Prefix + "DisableElectionForSingleServer", false);
-
- public string RegisterType => _configuration.GetValue(Prefix + "RegisterType", string.Empty);
-
- public string DatabaseFactoryServerVersion =>
- _configuration.GetValue(Prefix + "DatabaseFactoryServerVersion", string.Empty);
-
- public string MainDomLock => _configuration.GetValue(Prefix + "MainDomLock", string.Empty);
-
- public string NoNodesViewPath =>
- _configuration.GetValue(Prefix + "NoNodesViewPath", "~/config/splashes/NoNodes.cshtml");
-
- public bool IsSmtpServerConfigured =>
- _configuration.GetSection(Constants.Configuration.ConfigGlobalPrefix + "Smtp")?.GetChildren().Any() ?? false;
-
- public SmtpSettings SmtpSettings => new SmtpSettings();
- }
-}
diff --git a/src/Umbraco.Core/Configuration/IGlobalSettings.cs b/src/Umbraco.Core/Configuration/IGlobalSettings.cs
deleted file mode 100644
index ac32ea41c6..0000000000
--- a/src/Umbraco.Core/Configuration/IGlobalSettings.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-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
- ///
- public interface IGlobalSettings
- {
- // fixme: Review this class, it is now just a dumping ground for config options (based basically on whatever might be in appSettings),
- // our config classes should be named according to what they are configuring.
-
- ///
- /// Gets the reserved urls from web.config.
- ///
- /// The reserved urls.
- string ReservedUrls { get; }
-
- ///
- /// Gets the reserved paths from web.config
- ///
- /// The reserved paths.
- string ReservedPaths { get; }
-
- ///
- /// Gets the path to umbraco's icons directory (/umbraco/assets/icons by default).
- ///
- string IconsPath { get; }
-
- ///
- /// Gets or sets the configuration status. This will return the version number of the currently installed umbraco instance.
- ///
- string ConfigurationStatus { get; set; }
-
- ///
- /// Gets the time out in minutes.
- ///
- int TimeOutInMinutes { get; }
-
- ///
- /// Gets the default UI language.
- ///
- /// The default UI language.
- // ReSharper disable once InconsistentNaming
- string DefaultUILanguage { get; }
-
- ///
- /// Gets a value indicating whether umbraco should hide top level nodes from generated urls.
- ///
- ///
- /// true if umbraco hides top level nodes from urls; otherwise, false.
- ///
- bool HideTopLevelNodeFromPath { get; }
-
- ///
- /// Gets a value indicating whether umbraco should force a secure (https) connection to the backoffice.
- ///
- bool UseHttps { get; }
-
- ///
- /// Returns a string value to determine if umbraco should skip version-checking.
- ///
- /// The version check period in days (0 = never).
- int VersionCheckPeriod { get; }
-
- ///
- /// Gets the path to umbraco's root directory.
- ///
- string UmbracoPath { get; }
- string UmbracoCssPath { get; }
- string UmbracoScriptsPath { get; }
- string UmbracoMediaPath { get; }
-
- bool IsSmtpServerConfigured { get; }
- SmtpSettings SmtpSettings { get; }
-
- ///
- /// Gets a value indicating whether the runtime should enter Install level when the database is missing.
- ///
- ///
- /// By default, when a database connection string is configured but it is not possible to
- /// connect to the database, the runtime enters the BootFailed level. If this options is set to true,
- /// it enters the Install level instead.
- /// It is then up to the implementor, that is setting this value, to take over the installation
- /// sequence.
- ///
- bool InstallMissingDatabase { get; }
-
- ///
- /// Gets a value indicating whether the runtime should enter Install level when the database is empty.
- ///
- ///
- /// By default, when a database connection string is configured and it is possible to connect to
- /// the database, but the database is empty, the runtime enters the BootFailed level. If this options
- /// is set to true, it enters the Install level instead.
- /// It is then up to the implementor, that is setting this value, to take over the installation
- /// sequence.
- ///
- bool InstallEmptyDatabase { get; }
- bool DisableElectionForSingleServer { get; }
- string RegisterType { get; }
- string DatabaseFactoryServerVersion { get; }
- string MainDomLock { get; }
-
- ///
- /// Gets the path to the razor file used when no published content is available.
- ///
- string NoNodesViewPath { get; }
- }
-}
diff --git a/src/Umbraco.Core/Configuration/Models/GlobalSettings.cs b/src/Umbraco.Core/Configuration/Models/GlobalSettings.cs
index c28e05b32e..84956c7636 100644
--- a/src/Umbraco.Core/Configuration/Models/GlobalSettings.cs
+++ b/src/Umbraco.Core/Configuration/Models/GlobalSettings.cs
@@ -7,7 +7,7 @@
public class GlobalSettings
{
internal const string
- StaticReservedPaths = "~/app_plugins/,~/install/,~/mini-profiler-resources/,"; //must end with a comma!
+ StaticReservedPaths = "~/app_plugins/,~/install/,~/mini-profiler-resources/,~/umbraco/,"; //must end with a comma!
internal const string
StaticReservedUrls = "~/config/splashes/noNodes.aspx,~/.well-known,"; //must end with a comma!
diff --git a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs b/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs
deleted file mode 100644
index 278bbcfca2..0000000000
--- a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using Umbraco.Core;
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Models;
-using Umbraco.Core.Configuration.UmbracoSettings;
-
-namespace Umbraco.Infrastructure.Configuration
-{
- ///
- /// TEMPORARY: this class has been added just to ensure Umbraco.Web functionality continues to compile, by
- /// converting between e.g. (used by
- /// legacy configuration and (used by Netcore/IOptions configuration).
- ///
- public static class ConfigModelConversionsFromLegacy
- {
- public static GlobalSettings ConvertGlobalSettings(IGlobalSettings globalSettings)
- {
- return new GlobalSettings
- {
- DatabaseFactoryServerVersion = globalSettings.DatabaseFactoryServerVersion,
- DefaultUILanguage = globalSettings.DefaultUILanguage,
- DisableElectionForSingleServer = globalSettings.DisableElectionForSingleServer,
- HideTopLevelNodeFromPath = globalSettings.HideTopLevelNodeFromPath,
- InstallEmptyDatabase = globalSettings.InstallEmptyDatabase,
- InstallMissingDatabase = globalSettings.InstallMissingDatabase,
- MainDomLock = globalSettings.MainDomLock,
- NoNodesViewPath = globalSettings.NoNodesViewPath,
- RegisterType = globalSettings.RegisterType,
- ReservedPaths = globalSettings.ReservedPaths,
- ReservedUrls = globalSettings.ReservedUrls,
- Smtp = globalSettings.SmtpSettings != null
- ? new SmtpSettings
- {
- DeliveryMethod = globalSettings.SmtpSettings.DeliveryMethod,
- From = globalSettings.SmtpSettings.From,
- Host = globalSettings.SmtpSettings.Host,
- Password = globalSettings.SmtpSettings.Password,
- PickupDirectoryLocation = globalSettings.SmtpSettings.PickupDirectoryLocation,
- Port = globalSettings.SmtpSettings.Port,
- Username = globalSettings.SmtpSettings.Username,
- }
- : new SmtpSettings(),
- TimeOutInMinutes = globalSettings.TimeOutInMinutes,
- UmbracoCssPath = globalSettings.UmbracoCssPath,
- UmbracoMediaPath = globalSettings.UmbracoMediaPath,
- UmbracoPath = globalSettings.UmbracoPath,
- UmbracoScriptsPath = globalSettings.UmbracoScriptsPath,
- IconsPath = globalSettings.IconsPath,
- UseHttps = globalSettings.UseHttps,
- VersionCheckPeriod = globalSettings.VersionCheckPeriod,
- };
- }
-
- public static UserPasswordConfigurationSettings ConvertUserPasswordConfiguration(IUserPasswordConfiguration passwordConfiguration)
- {
- return new UserPasswordConfigurationSettings
- {
- HashAlgorithmType = passwordConfiguration.HashAlgorithmType,
- RequireDigit = passwordConfiguration.RequireDigit,
- RequiredLength = passwordConfiguration.RequiredLength,
- RequireLowercase = passwordConfiguration.RequireLowercase,
- RequireNonLetterOrDigit = passwordConfiguration.RequireNonLetterOrDigit,
- RequireUppercase = passwordConfiguration.RequireUppercase,
- };
- }
- }
-}
diff --git a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsToLegacy.cs b/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsToLegacy.cs
deleted file mode 100644
index ca4c1cd29e..0000000000
--- a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsToLegacy.cs
+++ /dev/null
@@ -1,130 +0,0 @@
-using System.Collections.Generic;
-using System.Net.Mail;
-using Umbraco.Core;
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Models;
-
-namespace Umbraco.Infrastructure.Configuration
-{
- ///
- /// TEMPORARY: this class has been added just to ensure tests on Umbraco.Web functionality, that still use the interface
- /// based configuration, by converting between e.g (used by
- /// legacy configuration and (used by Netcore/IOptions configuration).
- ///
- public static class ConfigModelConversionsToLegacy
- {
- public static IGlobalSettings ConvertGlobalSettings(GlobalSettings globalSettings)
- {
- return new TestGlobalSettings
- {
- DatabaseFactoryServerVersion = globalSettings.DatabaseFactoryServerVersion,
- DefaultUILanguage = globalSettings.DefaultUILanguage,
- DisableElectionForSingleServer = globalSettings.DisableElectionForSingleServer,
- HideTopLevelNodeFromPath = globalSettings.HideTopLevelNodeFromPath,
- InstallEmptyDatabase = globalSettings.InstallEmptyDatabase,
- InstallMissingDatabase = globalSettings.InstallMissingDatabase,
- MainDomLock = globalSettings.MainDomLock,
- NoNodesViewPath = globalSettings.NoNodesViewPath,
- RegisterType = globalSettings.RegisterType,
- ReservedPaths = globalSettings.ReservedPaths,
- ReservedUrls = globalSettings.ReservedUrls,
- SmtpSettings = new SmtpSettings
- {
- DeliveryMethod = globalSettings.Smtp.DeliveryMethod,
- From = globalSettings.Smtp.From,
- Host = globalSettings.Smtp.Host,
- Password = globalSettings.Smtp.Password,
- PickupDirectoryLocation = globalSettings.Smtp.PickupDirectoryLocation,
- Port = globalSettings.Smtp.Port,
- Username = globalSettings.Smtp.Username,
- },
- TimeOutInMinutes = globalSettings.TimeOutInMinutes,
- UmbracoCssPath = globalSettings.UmbracoCssPath,
- UmbracoMediaPath = globalSettings.UmbracoMediaPath,
- UmbracoPath = globalSettings.UmbracoPath,
- UmbracoScriptsPath = globalSettings.UmbracoScriptsPath,
- IconsPath = globalSettings.IconsPath,
- UseHttps = globalSettings.UseHttps,
- VersionCheckPeriod = globalSettings.VersionCheckPeriod,
- };
- }
-
- public static IUserPasswordConfiguration ConvertUserPasswordConfiguration(UserPasswordConfigurationSettings passwordConfiguration)
- {
- return new TestUserPasswordConfiguration
- {
- HashAlgorithmType = passwordConfiguration.HashAlgorithmType,
- RequireDigit = passwordConfiguration.RequireDigit,
- RequiredLength = passwordConfiguration.RequiredLength,
- RequireLowercase = passwordConfiguration.RequireLowercase,
- RequireNonLetterOrDigit = passwordConfiguration.RequireNonLetterOrDigit,
- RequireUppercase = passwordConfiguration.RequireUppercase,
- };
- }
-
- private class TestGlobalSettings : IGlobalSettings
- {
- public string ReservedUrls { get; set; }
-
- public string ReservedPaths { get; set; }
-
- public int TimeOutInMinutes { get; set; }
-
- public string DefaultUILanguage { get; set; }
-
- public bool HideTopLevelNodeFromPath { get; set; }
-
- public bool UseHttps { get; set; }
-
- public int VersionCheckPeriod { get; set; }
-
- public string UmbracoPath { get; set; }
-
- public string UmbracoCssPath { get; set; }
-
- public string UmbracoScriptsPath { get; set; }
-
- public string UmbracoMediaPath { get; set; }
-
- public bool IsSmtpServerConfigured { get; set; }
-
- public SmtpSettings SmtpSettings { get; set; }
-
- public bool InstallMissingDatabase { get; set; }
-
- public bool InstallEmptyDatabase { get; set; }
-
- public bool DisableElectionForSingleServer { get; set; }
-
- public string RegisterType { get; set; }
-
- public string DatabaseFactoryServerVersion { get; set; }
-
- public string MainDomLock { get; set; }
-
- public string NoNodesViewPath { get; set; }
-
- public string IconsPath { get; set; }
-
- public string ConfigurationStatus { get; set; }
- }
-
-
- private class TestUserPasswordConfiguration : IUserPasswordConfiguration
- {
- public int RequiredLength { get; set; }
-
- public bool RequireNonLetterOrDigit { get; set; }
-
- public bool RequireDigit { get; set; }
-
- public bool RequireLowercase { get; set; }
-
- public bool RequireUppercase { get; set; }
-
- public string HashAlgorithmType { get; set; }
-
- public int MaxFailedAccessAttemptsBeforeLockout { get; set; }
- }
- }
-}
diff --git a/src/Umbraco.Tests.Common/SettingsForTests.cs b/src/Umbraco.Tests.Common/SettingsForTests.cs
deleted file mode 100644
index 4d21b739e8..0000000000
--- a/src/Umbraco.Tests.Common/SettingsForTests.cs
+++ /dev/null
@@ -1,117 +0,0 @@
-using System.Collections.Generic;
-using Moq;
-using Semver;
-using Umbraco.Core;
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Legacy;
-using Umbraco.Core.Configuration.UmbracoSettings;
-using Umbraco.Core.IO;
-using Umbraco.Core.Models.PublishedContent;
-
-namespace Umbraco.Tests.Common
-{
- public class SettingsForTests
- {
- public SettingsForTests()
- {
- }
-
- public IGlobalSettings GenerateMockGlobalSettings(IUmbracoVersion umbVersion = null)
- {
- var semanticVersion = umbVersion?.SemanticVersion ?? new SemVersion(9);
-
- var config = Mock.Of(
- settings =>
- settings.UseHttps == false &&
- settings.HideTopLevelNodeFromPath == false &&
- settings.TimeOutInMinutes == 20 &&
- settings.DefaultUILanguage == "en" &&
- settings.ReservedPaths == (GlobalSettings.StaticReservedPaths + "~/umbraco") &&
- settings.ReservedUrls == GlobalSettings.StaticReservedUrls &&
- settings.UmbracoPath == "~/umbraco" &&
- settings.UmbracoMediaPath == "~/media" &&
- settings.UmbracoCssPath == "~/css" &&
- settings.UmbracoScriptsPath == "~/scripts"
- );
-
-
-
- return config;
- }
-
- //// from appSettings
-
- //private readonly IDictionary SavedAppSettings = new Dictionary();
-
- //static void SaveSetting(string key)
- //{
- // SavedAppSettings[key] = ConfigurationManager.AppSettings[key];
- //}
-
- //static void SaveSettings()
- //{
- // SaveSetting("umbracoHideTopLevelNodeFromPath");
- // SaveSetting("umbracoUseDirectoryUrls");
- // SaveSetting("umbracoPath");
- // SaveSetting("umbracoReservedPaths");
- // SaveSetting("umbracoReservedUrls");
- // SaveSetting("umbracoConfigurationStatus");
- //}
-
-
-
- // reset & defaults
-
- //static SettingsForTests()
- //{
- // //SaveSettings();
- //}
-
- public void Reset()
- {
- ResetSettings();
- GlobalSettings.Reset();
-
- //foreach (var kvp in SavedAppSettings)
- // ConfigurationManager.AppSettings.Set(kvp.Key, kvp.Value);
-
- //// set some defaults that are wrong in the config file?!
- //// this is annoying, really
- //HideTopLevelNodeFromPath = false;
- }
-
- ///
- /// This sets all settings back to default settings
- ///
- private void ResetSettings()
- {
- _defaultGlobalSettings.Clear();
- }
-
- private readonly Dictionary _defaultGlobalSettings = new Dictionary();
-
- public IGlobalSettings GetDefaultGlobalSettings(IUmbracoVersion umbVersion)
- {
- if (_defaultGlobalSettings.TryGetValue(umbVersion.SemanticVersion, out var settings))
- return settings;
-
- settings = GenerateMockGlobalSettings(umbVersion);
- _defaultGlobalSettings[umbVersion.SemanticVersion] = settings;
- return settings;
- }
-
- public IUserPasswordConfiguration GenerateMockUserPasswordConfiguration()
- {
- var mock = new Mock();
-
- return mock.Object;
- }
-
- public IMemberPasswordConfiguration GenerateMockMemberPasswordConfiguration()
- {
- var mock = new Mock();
-
- return mock.Object;
- }
- }
-}
diff --git a/src/Umbraco.Tests.Common/TestHelperBase.cs b/src/Umbraco.Tests.Common/TestHelperBase.cs
index 65b4002b0d..7b5fed3000 100644
--- a/src/Umbraco.Tests.Common/TestHelperBase.cs
+++ b/src/Umbraco.Tests.Common/TestHelperBase.cs
@@ -35,7 +35,6 @@ namespace Umbraco.Tests.Common
protected TestHelperBase(Assembly entryAssembly)
{
- SettingsForTests = new SettingsForTests();
MainDom = new SimpleMainDom();
_typeFinder = new TypeFinder(Mock.Of(), new DefaultUmbracoAssemblyProvider(entryAssembly), new VaryingRuntimeHash());
}
@@ -99,8 +98,6 @@ namespace Umbraco.Tests.Common
return _uriUtility;
}
}
-
- public SettingsForTests SettingsForTests { get; }
///
/// 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.UnitTests/Umbraco.Configuration/Models/ConnectionStringsTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/Models/ConnectionStringsTests.cs
index 24917aba15..8c5f096208 100644
--- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/Models/ConnectionStringsTests.cs
+++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/Models/ConnectionStringsTests.cs
@@ -1,7 +1,4 @@
-using Microsoft.Extensions.Configuration;
-using Moq;
-using NUnit.Framework;
-using Umbraco.Configuration.Models;
+using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Configuration.Models;
diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs
index f098af7de6..77a7ba1732 100644
--- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs
+++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs
@@ -17,12 +17,10 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Extensions
[OneTimeSetUp]
public void Setup()
{
- _settingsForTests = new SettingsForTests();
_hostEnvironment = Mock.Of();
_globalSettings = new GlobalSettingsBuilder().Build();
}
- private SettingsForTests _settingsForTests;
private IWebHostEnvironment _hostEnvironment;
private GlobalSettings _globalSettings;
diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/FileNameTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/FileNameTests.cs
index 2669d74b11..e7cf097dd5 100644
--- a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/FileNameTests.cs
+++ b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/FileNameTests.cs
@@ -55,10 +55,10 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Web.Common
[Test]
[AutoMoqData]
public void PreviewViewExists(
- [Frozen] IGlobalSettings globalSettings,
+ [Frozen] IOptions globalSettings,
PreviewController sut)
{
- Mock.Get(globalSettings).Setup(x => x.UmbracoPath).Returns("/");
+ globalSettings.Value.UmbracoPath = "/";
var viewResult = sut.Index() as ViewResult;
var fileName = GetViewName(viewResult);
diff --git a/src/Umbraco.Tests/Models/VariationTests.cs b/src/Umbraco.Tests/Models/VariationTests.cs
index 1c7445a901..17042d5c96 100644
--- a/src/Umbraco.Tests/Models/VariationTests.cs
+++ b/src/Umbraco.Tests/Models/VariationTests.cs
@@ -23,9 +23,6 @@ namespace Umbraco.Tests.Models
[SetUp]
public void SetUp()
{
- // annoying, but content type wants short string helper ;(
- SettingsForTests.Reset();
-
// well, this is also annoying, but...
// validating a value is performed by its data editor,
// based upon the configuration in the data type, so we
diff --git a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs
index 2ef8d2d30f..6a45dafa54 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs
@@ -7,6 +7,7 @@ using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.IO;
using Umbraco.Core.Models;
@@ -31,7 +32,7 @@ namespace Umbraco.Tests.Persistence.Repositories
base.SetUp();
_fileSystems = Mock.Of();
- _fileSystem = new PhysicalFileSystem(IOHelper, HostingEnvironment, Logger, SettingsForTests.GenerateMockGlobalSettings().UmbracoScriptsPath);
+ _fileSystem = new PhysicalFileSystem(IOHelper, HostingEnvironment, Logger, new GlobalSettings().UmbracoScriptsPath);
Mock.Get(_fileSystems).Setup(x => x.ScriptsFileSystem).Returns(_fileSystem);
using (var stream = CreateStream("Umbraco.Sys.registerNamespace(\"Umbraco.Utils\");"))
{
diff --git a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs
index 5b6f77ac7e..028f99f89e 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs
@@ -8,6 +8,7 @@ using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
@@ -30,7 +31,7 @@ namespace Umbraco.Tests.Persistence.Repositories
base.SetUp();
_fileSystems = Mock.Of();
- _fileSystem = new PhysicalFileSystem(IOHelper, HostingEnvironment, Logger, SettingsForTests.GenerateMockGlobalSettings().UmbracoCssPath);
+ _fileSystem = new PhysicalFileSystem(IOHelper, HostingEnvironment, Logger, new GlobalSettings().UmbracoCssPath);
Mock.Get(_fileSystems).Setup(x => x.StylesheetsFileSystem).Returns(_fileSystem);
var stream = CreateStream("body {background:#EE7600; color:#FFF;}");
_fileSystem.AddFile("styles.css", stream);
diff --git a/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs b/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs
index d224d97467..e50d6fe8ab 100644
--- a/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs
+++ b/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs
@@ -7,12 +7,8 @@ using Moq;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Composing;
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Legacy;
using Umbraco.Core.Events;
using Umbraco.Core.Hosting;
-using Umbraco.Core.Install;
-using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
diff --git a/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs b/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs
index d65d89a363..010569fe42 100644
--- a/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs
+++ b/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs
@@ -6,10 +6,7 @@ using Moq;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Composing;
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Legacy;
using Umbraco.Core.Events;
-using Umbraco.Core.Install;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
diff --git a/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs b/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs
index 9bf85d61be..c0b83b08cb 100644
--- a/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs
+++ b/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs
@@ -1,11 +1,7 @@
using System;
using System.Web.Mvc;
using System.Web.Routing;
-using Moq;
using NUnit.Framework;
-using Umbraco.Core;
-using Umbraco.Core.Configuration;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Tests.Common.Builders;
using Umbraco.Tests.TestHelpers;
using Umbraco.Web;
diff --git a/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs b/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs
index a2b3ce62e4..ceea358a42 100644
--- a/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs
+++ b/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs
@@ -5,7 +5,6 @@ using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Logging;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Tests.Common.Builders;
using Umbraco.Tests.TestHelpers;
using Umbraco.Web;
@@ -39,7 +38,7 @@ namespace Umbraco.Tests.Routing
new RoutableDocumentFilter(globalSettings, IOHelper),
UriUtility,
AppCaches.RequestCache,
- ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings),
+ globalSettings,
HostingEnvironment
);
diff --git a/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs b/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs
index e6774076bf..2c5bfc52e9 100644
--- a/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs
+++ b/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs
@@ -1,13 +1,8 @@
-using Moq;
-using NUnit.Framework;
-using Umbraco.Core;
-using Umbraco.Core.Configuration;
+using NUnit.Framework;
using Umbraco.Core.Configuration.Models;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Tests.Common;
using Umbraco.Tests.Common.Builders;
using Umbraco.Tests.Testing;
-using Umbraco.Web.PublishedCache;
using Umbraco.Web.Routing;
namespace Umbraco.Tests.Routing
diff --git a/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs b/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs
index bb25635d6f..e8f3bf97fd 100644
--- a/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs
+++ b/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs
@@ -7,7 +7,6 @@ using NUnit.Framework;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Tests.Common;
using Umbraco.Tests.Common.Builders;
using Umbraco.Tests.LegacyXmlPublishedCache;
diff --git a/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs b/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs
index c566e742cb..a960cdba53 100644
--- a/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs
+++ b/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs
@@ -7,7 +7,6 @@ using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Services;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Tests.Common;
using Umbraco.Tests.Common.Builders;
using Umbraco.Tests.LegacyXmlPublishedCache;
diff --git a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs
index d5b98c402f..03faa70d8c 100644
--- a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs
+++ b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs
@@ -3,17 +3,14 @@ using System.Linq;
using Moq;
using NUnit.Framework;
using Umbraco.Core;
-using Umbraco.Core.Configuration;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
-using Umbraco.Tests.TestHelpers;
using Umbraco.Web.Routing;
using Umbraco.Core.Services;
using Umbraco.Tests.LegacyXmlPublishedCache;
using Umbraco.Web;
using Umbraco.Tests.Common;
using Umbraco.Tests.Common.Builders;
-using Umbraco.Infrastructure.Configuration;
namespace Umbraco.Tests.Routing
{
diff --git a/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs b/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs
index 7cb20cbbde..045ed2e3e8 100644
--- a/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs
+++ b/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs
@@ -9,14 +9,12 @@ 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.Exceptions;
using Umbraco.Core.Hosting;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence;
using Umbraco.Core.Runtime;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Net;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Stubs;
@@ -87,7 +85,7 @@ namespace Umbraco.Tests.Runtimes
{
public TestUmbracoApplication() : base(_logger,
new SecuritySettings(),
- ConfigModelConversionsFromLegacy.ConvertGlobalSettings(SettingsForTests.DefaultGlobalSettings),
+ new GlobalSettings(),
new ConnectionStrings(),
_ioHelper, _profiler, new AspNetHostingEnvironment(Options.Create(new HostingSettings())), new AspNetBackOfficeInfo(_globalSettings, _ioHelper, _logger, Options.Create(new WebRoutingSettings())))
{
@@ -96,7 +94,7 @@ namespace Umbraco.Tests.Runtimes
private static readonly DebugDiagnosticsLogger _logger = new DebugDiagnosticsLogger(new MessageTemplates());
private static readonly IIOHelper _ioHelper = TestHelper.IOHelper;
private static readonly IProfiler _profiler = new TestProfiler();
- private static readonly IGlobalSettings _globalSettings = SettingsForTests.DefaultGlobalSettings;
+ private static readonly GlobalSettings _globalSettings = new GlobalSettings();
public IRuntime Runtime { get; private set; }
diff --git a/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs b/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs
index d775b0d8d3..5ca6308bcd 100644
--- a/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs
+++ b/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs
@@ -45,16 +45,12 @@ namespace Umbraco.Tests.Scoping
Current.Reset();
Current.Factory = composition.CreateFactory();
-
- SettingsForTests.Reset(); // ensure we have configuration
}
[TearDown]
public void TearDown()
{
Current.Reset();
-
- SettingsForTests.Reset();
}
[TestCase(false, true, true)]
diff --git a/src/Umbraco.Tests/Security/BackOfficeOwinUserManagerTests.cs b/src/Umbraco.Tests/Security/BackOfficeOwinUserManagerTests.cs
index ca38f0ce70..32c85121d2 100644
--- a/src/Umbraco.Tests/Security/BackOfficeOwinUserManagerTests.cs
+++ b/src/Umbraco.Tests/Security/BackOfficeOwinUserManagerTests.cs
@@ -3,14 +3,15 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Logging.Abstractions;
+using Microsoft.Extensions.Options;
using Microsoft.Owin.Security.DataProtection;
using Moq;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.BackOffice;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Models.Membership;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Net;
using Umbraco.Web.Security;
@@ -24,28 +25,32 @@ namespace Umbraco.Tests.Security
const string v7Hash = "7Uob6fMTTxDIhWGebYiSxg==P+hgvWlXLbDd4cFLADn811KOaVI/9pg1PNvTuG5NklY=";
const string plaintext = "4XxzH3s3&J";
- var mockPasswordConfiguration = new Mock();
+ var userPasswordConfiguration = new UserPasswordConfigurationSettings()
+ {
+ HashAlgorithmType = Constants.Security.AspNetUmbraco8PasswordHashAlgorithmName
+ };
var mockIpResolver = new Mock();
var mockUserStore = new Mock>();
var mockDataProtectionProvider = new Mock();
mockDataProtectionProvider.Setup(x => x.Create(It.IsAny()))
.Returns(new Mock().Object);
- mockPasswordConfiguration.Setup(x => x.HashAlgorithmType)
- .Returns(Constants.Security.AspNetUmbraco8PasswordHashAlgorithmName);
+
var userManager = BackOfficeOwinUserManager.Create(
- mockPasswordConfiguration.Object,
+ Options.Create(userPasswordConfiguration),
mockIpResolver.Object,
mockUserStore.Object,
null,
mockDataProtectionProvider.Object,
new NullLogger>());
- var mockGlobalSettings = new Mock();
- mockGlobalSettings.Setup(x => x.DefaultUILanguage).Returns("test");
+ var globalSettings = new GlobalSettings()
+ {
+ DefaultUILanguage = "test"
+ };
- var user = new BackOfficeIdentityUser(ConfigModelConversionsFromLegacy.ConvertGlobalSettings(mockGlobalSettings.Object), 2, new List())
+ var user = new BackOfficeIdentityUser(globalSettings, 2, new List())
{
UserName = "alice",
Name = "Alice",
diff --git a/src/Umbraco.Tests/Security/OwinDataProtectorTokenProviderTests.cs b/src/Umbraco.Tests/Security/OwinDataProtectorTokenProviderTests.cs
index 65efdfeb0d..4874545571 100644
--- a/src/Umbraco.Tests/Security/OwinDataProtectorTokenProviderTests.cs
+++ b/src/Umbraco.Tests/Security/OwinDataProtectorTokenProviderTests.cs
@@ -8,6 +8,7 @@ using Moq;
using NUnit.Framework;
using Umbraco.Core.BackOffice;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Tests.Common.Builders;
using Umbraco.Web.Security;
@@ -82,7 +83,7 @@ namespace Umbraco.Tests.Security
reader.ReadInt64(); // creation time
reader.ReadString(); // user ID
var purpose = reader.ReadString();
-
+
Assert.AreEqual(expectedPurpose, purpose);
}
}
@@ -229,8 +230,6 @@ namespace Umbraco.Tests.Security
_mockDataProtector.Setup(x => x.Unprotect(It.IsAny())).Returns((byte[] originalBytes) => originalBytes);
var globalSettings = new GlobalSettingsBuilder().Build();
- var mockGlobalSettings = new Mock();
- mockGlobalSettings.Setup(x => x.DefaultUILanguage).Returns("test");
_mockUserManager = new Mock>(new Mock>().Object,
null, null, null, null, null, null, null, null);
diff --git a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs
index 27aa9a832c..87d470f31e 100644
--- a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs
+++ b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs
@@ -1,32 +1,21 @@
using System;
using System.Collections.Generic;
-using System.Linq;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Dispatcher;
-using System.Web.Security;
using Moq;
using Umbraco.Core.BackOffice;
-using Umbraco.Core.Cache;
-using Umbraco.Core.Configuration.UmbracoSettings;
-using Umbraco.Core.Dictionary;
-using Umbraco.Core.IO;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Models.PublishedContent;
-using Umbraco.Core.Security;
using Umbraco.Core.Services;
using Umbraco.Web;
using Umbraco.Web.PublishedCache;
using Umbraco.Web.Routing;
using Umbraco.Web.Security;
using Umbraco.Web.WebApi;
-using Umbraco.Core.Logging;
-using Umbraco.Infrastructure.Configuration;
-using Umbraco.Tests.Testing.Objects.Accessors;
-using Umbraco.Web.Security.Providers;
-using Umbraco.Tests.Strings;
using Umbraco.Tests.Common;
using Umbraco.Tests.TestHelpers.Entities;
@@ -68,7 +57,7 @@ namespace Umbraco.Tests.TestHelpers.ControllerTesting
contentTypeService: mockedContentTypeService,
localizedTextService:Mock.Of());
- var globalSettings = ConfigModelConversionsFromLegacy.ConvertGlobalSettings(SettingsForTests.GenerateMockGlobalSettings());
+ var globalSettings = new GlobalSettings();
// FIXME: v8?
////new app context
diff --git a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs
deleted file mode 100644
index af6b008a14..0000000000
--- a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Models;
-using Umbraco.Core.Configuration.UmbracoSettings;
-
-namespace Umbraco.Tests.TestHelpers
-{
- public class SettingsForTests
- {
- private static Common.SettingsForTests _settingsForTests = new Common.SettingsForTests();
-
- public static IGlobalSettings GenerateMockGlobalSettings() => _settingsForTests.GenerateMockGlobalSettings(TestHelper.GetUmbracoVersion());
-
- //// from appSettings
-
- //private static readonly IDictionary SavedAppSettings = new Dictionary();
-
- //static void SaveSetting(string key)
- //{
- // SavedAppSettings[key] = ConfigurationManager.AppSettings[key];
- //}
-
- //static void SaveSettings()
- //{
- // SaveSetting("umbracoHideTopLevelNodeFromPath");
- // SaveSetting("umbracoUseDirectoryUrls");
- // SaveSetting("umbracoPath");
- // SaveSetting("umbracoReservedPaths");
- // SaveSetting("umbracoReservedUrls");
- // SaveSetting("umbracoConfigurationStatus");
- //}
-
-
-
- // reset & defaults
-
- //static SettingsForTests()
- //{
- // //SaveSettings();
- //}
-
- public static void Reset() => _settingsForTests.Reset();
-
- internal static IGlobalSettings DefaultGlobalSettings => _settingsForTests.GetDefaultGlobalSettings(TestHelper.GetUmbracoVersion());
-
- 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 7161e82323..760fb7dbaa 100644
--- a/src/Umbraco.Tests/TestHelpers/TestHelper.cs
+++ b/src/Umbraco.Tests/TestHelpers/TestHelper.cs
@@ -62,7 +62,7 @@ namespace Umbraco.Tests.TestHelpers
public override IBackOfficeInfo GetBackOfficeInfo()
=> new AspNetBackOfficeInfo(
- SettingsForTests.GenerateMockGlobalSettings(GetUmbracoVersion()),
+ new GlobalSettings(),
TestHelper.IOHelper, Mock.Of(), Options.Create(new WebRoutingSettings()));
public override IHostingEnvironment GetHostingEnvironment()
@@ -116,12 +116,12 @@ namespace Umbraco.Tests.TestHelpers
public static void InitializeContentDirectories()
{
- CreateDirectories(new[] { Constants.SystemDirectories.MvcViews, SettingsForTests.GenerateMockGlobalSettings().UmbracoMediaPath, Constants.SystemDirectories.AppPlugins });
+ CreateDirectories(new[] { Constants.SystemDirectories.MvcViews, new GlobalSettings().UmbracoMediaPath, Constants.SystemDirectories.AppPlugins });
}
public static void CleanContentDirectories()
{
- CleanDirectories(new[] { Constants.SystemDirectories.MvcViews, SettingsForTests.GenerateMockGlobalSettings().UmbracoMediaPath });
+ CleanDirectories(new[] { Constants.SystemDirectories.MvcViews, new GlobalSettings().UmbracoMediaPath });
}
public static void CreateDirectories(string[] directories)
diff --git a/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs b/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs
index 1ed2bce83e..7037961e7d 100644
--- a/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs
+++ b/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs
@@ -7,15 +7,12 @@ using System.Linq.Expressions;
using Moq;
using Umbraco.Core;
using Umbraco.Core.Composing;
-using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
-using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Services;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Persistance.SqlCe;
using Umbraco.Tests.Common;
using Umbraco.Web;
@@ -140,7 +137,7 @@ namespace Umbraco.Tests.TestHelpers
public GlobalSettings GetGlobalSettings()
{
- return ConfigModelConversionsFromLegacy.ConvertGlobalSettings(SettingsForTests.DefaultGlobalSettings);
+ return new GlobalSettings();
}
public IFileSystems GetFileSystemsMock()
{
diff --git a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs
index 54123ad78b..f1a834021f 100644
--- a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs
+++ b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs
@@ -1,8 +1,6 @@
using System;
-using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlServerCe;
-using System.Linq;
using System.Threading;
using System.Web.Routing;
using System.Xml;
@@ -10,9 +8,7 @@ using Moq;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Cache;
-using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
-using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.SqlSyntax;
@@ -30,7 +26,6 @@ using Umbraco.Tests.Testing;
using Umbraco.Core.Migrations.Install;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Persistence.Repositories;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Persistance.SqlCe;
using Umbraco.Tests.LegacyXmlPublishedCache;
using Umbraco.Web.WebApi;
diff --git a/src/Umbraco.Tests/Testing/Objects/TestUmbracoContextFactory.cs b/src/Umbraco.Tests/Testing/Objects/TestUmbracoContextFactory.cs
index 595185c271..544e60d721 100644
--- a/src/Umbraco.Tests/Testing/Objects/TestUmbracoContextFactory.cs
+++ b/src/Umbraco.Tests/Testing/Objects/TestUmbracoContextFactory.cs
@@ -1,10 +1,6 @@
using Moq;
-using NUnit.Framework.Internal;
-using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
-using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Services;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Tests.Common;
using Umbraco.Tests.TestHelpers;
using Umbraco.Web;
@@ -23,7 +19,7 @@ namespace Umbraco.Tests.Testing.Objects
IHttpContextAccessor httpContextAccessor = null,
IPublishedUrlProvider publishedUrlProvider = null)
{
- if (globalSettings == null) globalSettings = ConfigModelConversionsFromLegacy.ConvertGlobalSettings(TestHelpers.SettingsForTests.GenerateMockGlobalSettings());
+ if (globalSettings == null) globalSettings = new GlobalSettings();
if (umbracoContextAccessor == null) umbracoContextAccessor = new TestUmbracoContextAccessor();
if (httpContextAccessor == null) httpContextAccessor = TestHelper.GetHttpContextAccessor();
if (publishedUrlProvider == null) publishedUrlProvider = TestHelper.GetPublishedUrlProvider();
diff --git a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs
index 0232cafb1c..8a08e2be07 100644
--- a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs
+++ b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs
@@ -9,6 +9,7 @@ using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Dictionary;
using Umbraco.Core.Logging;
using Umbraco.Core.Mapping;
@@ -110,7 +111,7 @@ namespace Umbraco.Tests.Testing.TestingTests
var membershipHelper = new MembershipHelper(Mock.Of(), Mock.Of(), membershipProvider, Mock.Of(), memberService, memberTypeService, Mock.Of(), AppCaches.Disabled, logger, ShortStringHelper, Mock.Of());
var umbracoMapper = new UmbracoMapper(new MapDefinitionCollection(new[] { Mock.Of() }));
- var umbracoApiController = new FakeUmbracoApiController(Mock.Of(), Mock.Of(), Mock.Of(), ServiceContext.CreatePartial(), AppCaches.NoCache, logger, Mock.Of(), umbracoMapper, Mock.Of());
+ var umbracoApiController = new FakeUmbracoApiController(new GlobalSettings(), Mock.Of(), Mock.Of(), ServiceContext.CreatePartial(), AppCaches.NoCache, logger, Mock.Of(), umbracoMapper, Mock.Of());
Assert.Pass();
}
@@ -118,7 +119,7 @@ namespace Umbraco.Tests.Testing.TestingTests
internal class FakeUmbracoApiController : UmbracoApiController
{
- public FakeUmbracoApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider)
+ public FakeUmbracoApiController(GlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider)
: base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { }
}
}
diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
index 541021613e..0ebe1ab2fb 100644
--- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
+++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
@@ -38,7 +38,6 @@ using Umbraco.Core.Serialization;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
using Umbraco.Core.Strings;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Net;
using Umbraco.Tests.Common;
using Umbraco.Tests.Common.Builders;
@@ -177,7 +176,7 @@ namespace Umbraco.Tests.Testing
var globalSettings = new GlobalSettingsBuilder().Build();
var settings = new WebRoutingSettings();
- IBackOfficeInfo backOfficeInfo = new AspNetBackOfficeInfo(ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings), IOHelper, logger, Microsoft.Extensions.Options.Options.Create(settings));
+ IBackOfficeInfo backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, IOHelper, logger, Microsoft.Extensions.Options.Options.Create(settings));
IIpResolver ipResolver = new AspNetIpResolver();
UmbracoVersion = new UmbracoVersion();
@@ -562,7 +561,6 @@ namespace Umbraco.Tests.Testing
// reset all other static things that should not be static ;(
UriUtility.ResetAppDomainAppVirtualPath(HostingEnvironment);
- TestHelpers.SettingsForTests.Reset(); // FIXME: should it be optional?
// clear static events
DocumentRepository.ClearScopeEvents();
diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj
index c210cb2ffa..bad75ba05c 100644
--- a/src/Umbraco.Tests/Umbraco.Tests.csproj
+++ b/src/Umbraco.Tests/Umbraco.Tests.csproj
@@ -391,7 +391,6 @@
-
diff --git a/src/Umbraco.Tests/Web/Mvc/RenderNoContentControllerTests.cs b/src/Umbraco.Tests/Web/Mvc/RenderNoContentControllerTests.cs
index d33ce3bfcc..3f66dcb86c 100644
--- a/src/Umbraco.Tests/Web/Mvc/RenderNoContentControllerTests.cs
+++ b/src/Umbraco.Tests/Web/Mvc/RenderNoContentControllerTests.cs
@@ -2,6 +2,7 @@
using Moq;
using NUnit.Framework;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.IO;
using Umbraco.Tests.Common;
using Umbraco.Web;
@@ -20,8 +21,7 @@ namespace Umbraco.Tests.Web.Mvc
var mockUmbracoContext = new Mock();
mockUmbracoContext.Setup(x => x.Content.HasContent()).Returns(true);
var mockIOHelper = new Mock();
- var mockGlobalSettings = new Mock();
- var controller = new RenderNoContentController(new TestUmbracoContextAccessor(mockUmbracoContext.Object), mockIOHelper.Object, mockGlobalSettings.Object);
+ var controller = new RenderNoContentController(new TestUmbracoContextAccessor(mockUmbracoContext.Object), mockIOHelper.Object, new GlobalSettings());
var result = controller.Index() as RedirectResult;
@@ -39,10 +39,12 @@ namespace Umbraco.Tests.Web.Mvc
mockUmbracoContext.Setup(x => x.Content.HasContent()).Returns(false);
var mockIOHelper = new Mock();
mockIOHelper.Setup(x => x.ResolveUrl(It.Is(y => y == UmbracoPathSetting))).Returns(UmbracoPath);
- var mockGlobalSettings = new Mock();
- mockGlobalSettings.SetupGet(x => x.UmbracoPath).Returns(UmbracoPathSetting);
- mockGlobalSettings.SetupGet(x => x.NoNodesViewPath).Returns(ViewPath);
- var controller = new RenderNoContentController(new TestUmbracoContextAccessor(mockUmbracoContext.Object), mockIOHelper.Object, mockGlobalSettings.Object);
+ var globalSettings = new GlobalSettings()
+ {
+ UmbracoPath = UmbracoPathSetting,
+ NoNodesViewPath = ViewPath,
+ };
+ var controller = new RenderNoContentController(new TestUmbracoContextAccessor(mockUmbracoContext.Object), mockIOHelper.Object, globalSettings);
var result = controller.Index() as ViewResult;
Assert.IsNotNull(result);
diff --git a/src/Umbraco.Web.BackOffice/Controllers/IconController.cs b/src/Umbraco.Web.BackOffice/Controllers/IconController.cs
index bbefa82bd9..83d6ba299d 100644
--- a/src/Umbraco.Web.BackOffice/Controllers/IconController.cs
+++ b/src/Umbraco.Web.BackOffice/Controllers/IconController.cs
@@ -4,7 +4,9 @@ using Umbraco.Web.Models;
using System.IO;
using Umbraco.Core;
using Ganss.XSS;
+using Microsoft.Extensions.Options;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
using Umbraco.Web.BackOffice.Controllers;
using Umbraco.Web.Common.Attributes;
@@ -16,11 +18,11 @@ namespace Umbraco.Web.Editors
public class IconController : UmbracoAuthorizedApiController
{
private readonly IHostingEnvironment _hostingEnvironment;
- private readonly IGlobalSettings _globalSettings;
+ private readonly IOptions _globalSettings;
public IconController(
IHostingEnvironment hostingEnvironment,
- IGlobalSettings globalSettings)
+ IOptions globalSettings)
{
_hostingEnvironment = hostingEnvironment;
_globalSettings = globalSettings;
@@ -37,7 +39,7 @@ namespace Umbraco.Web.Editors
return string.IsNullOrWhiteSpace(iconName)
? null
: CreateIconModel(iconName.StripFileExtension(),
- _hostingEnvironment.MapPathWebRoot($"{_globalSettings.IconsPath}/{iconName}.svg"));
+ _hostingEnvironment.MapPathWebRoot($"{_globalSettings.Value.IconsPath}/{iconName}.svg"));
}
///
@@ -60,7 +62,7 @@ namespace Umbraco.Web.Editors
public List GetAllIcons()
{
var icons = new List();
- var directory = new DirectoryInfo(_hostingEnvironment.MapPathWebRoot($"{_globalSettings.IconsPath}/"));
+ var directory = new DirectoryInfo(_hostingEnvironment.MapPathWebRoot($"{_globalSettings.Value.IconsPath}/"));
var iconNames = directory.GetFiles("*.svg");
iconNames.OrderBy(f => f.Name).ToList().ForEach(iconInfo =>
diff --git a/src/Umbraco.Web/AppBuilderExtensions.cs b/src/Umbraco.Web/AppBuilderExtensions.cs
index 499ebbd929..f4766bc414 100644
--- a/src/Umbraco.Web/AppBuilderExtensions.cs
+++ b/src/Umbraco.Web/AppBuilderExtensions.cs
@@ -3,8 +3,8 @@ using Microsoft.AspNet.SignalR;
using Microsoft.Owin.Logging;
using Owin;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Web.Logging;
namespace Umbraco.Web
@@ -45,9 +45,9 @@ namespace Umbraco.Web
/// The app builder.
///
///
- public static IAppBuilder UseSignalR(this IAppBuilder app, IGlobalSettings globalSettings, IHostingEnvironment hostingEnvironment)
+ public static IAppBuilder UseSignalR(this IAppBuilder app, GlobalSettings globalSettings, IHostingEnvironment hostingEnvironment)
{
- var umbracoPath = ConfigModelConversionsFromLegacy.ConvertGlobalSettings(globalSettings).GetUmbracoMvcArea(hostingEnvironment);
+ var umbracoPath = globalSettings.GetUmbracoMvcArea(hostingEnvironment);
var signalrPath = HttpRuntime.AppDomainAppVirtualPath + umbracoPath + "/BackOffice/signalr";
return app.MapSignalR(signalrPath, new HubConfiguration { EnableDetailedErrors = true });
}
diff --git a/src/Umbraco.Web/AspNet/AspNetBackOfficeInfo.cs b/src/Umbraco.Web/AspNet/AspNetBackOfficeInfo.cs
index 8992813b73..515824dc77 100644
--- a/src/Umbraco.Web/AspNet/AspNetBackOfficeInfo.cs
+++ b/src/Umbraco.Web/AspNet/AspNetBackOfficeInfo.cs
@@ -11,12 +11,12 @@ namespace Umbraco.Web
{
public class AspNetBackOfficeInfo : IBackOfficeInfo
{
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly IIOHelper _ioHelper;
private readonly ILogger _logger;
private readonly WebRoutingSettings _webRoutingSettings;
- public AspNetBackOfficeInfo(IGlobalSettings globalSettings, IIOHelper ioHelper, ILogger logger, IOptions webRoutingSettings)
+ public AspNetBackOfficeInfo(GlobalSettings globalSettings, IIOHelper ioHelper, ILogger logger, IOptions webRoutingSettings)
{
_globalSettings = globalSettings;
_ioHelper = ioHelper;
diff --git a/src/Umbraco.Web/Compose/AuditEventsComponent.cs b/src/Umbraco.Web/Compose/AuditEventsComponent.cs
index d3667ef93c..4b5669a33f 100644
--- a/src/Umbraco.Web/Compose/AuditEventsComponent.cs
+++ b/src/Umbraco.Web/Compose/AuditEventsComponent.cs
@@ -3,14 +3,14 @@ using System.Linq;
using System.Text;
using System.Threading;
using Umbraco.Core.Composing;
-using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Events;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
using Umbraco.Extensions;
-using Umbraco.Infrastructure.Configuration;
+
using Umbraco.Net;
namespace Umbraco.Core.Compose
@@ -21,9 +21,9 @@ namespace Umbraco.Core.Compose
private readonly IUserService _userService;
private readonly IEntityService _entityService;
private readonly IIpResolver _ipResolver;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
- public AuditEventsComponent(IAuditService auditService, IUserService userService, IEntityService entityService, IIpResolver ipResolver, IGlobalSettings globalSettings)
+ public AuditEventsComponent(IAuditService auditService, IUserService userService, IEntityService entityService, IIpResolver ipResolver, GlobalSettings globalSettings)
{
_auditService = auditService;
_userService = userService;
@@ -62,7 +62,7 @@ namespace Umbraco.Core.Compose
MemberService.Exported -= OnMemberExported;
}
- public static IUser UnknownUser(IGlobalSettings globalSettings) => new User(ConfigModelConversionsFromLegacy.ConvertGlobalSettings(globalSettings)) { Id = Constants.Security.UnknownUserId, Name = Constants.Security.UnknownUserName, Email = "" };
+ public static IUser UnknownUser(GlobalSettings globalSettings) => new User(globalSettings) { Id = Constants.Security.UnknownUserId, Name = Constants.Security.UnknownUserName, Email = "" };
private IUser CurrentPerformingUser
{
diff --git a/src/Umbraco.Web/Compose/BackOfficeUserAuditEventsComponent.cs b/src/Umbraco.Web/Compose/BackOfficeUserAuditEventsComponent.cs
index e4f9679f4c..bfb80924d1 100644
--- a/src/Umbraco.Web/Compose/BackOfficeUserAuditEventsComponent.cs
+++ b/src/Umbraco.Web/Compose/BackOfficeUserAuditEventsComponent.cs
@@ -3,6 +3,7 @@ using Umbraco.Core;
using Umbraco.Core.Compose;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Services;
using Umbraco.Web.Security;
@@ -13,9 +14,9 @@ namespace Umbraco.Web.Compose
{
private readonly IAuditService _auditService;
private readonly IUserService _userService;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
- public BackOfficeUserAuditEventsComponent(IAuditService auditService, IUserService userService, IGlobalSettings globalSettings)
+ public BackOfficeUserAuditEventsComponent(IAuditService auditService, IUserService userService, GlobalSettings globalSettings)
{
_auditService = auditService;
_userService = userService;
diff --git a/src/Umbraco.Web/Editors/AuthenticationController.cs b/src/Umbraco.Web/Editors/AuthenticationController.cs
index f325ae82da..1cf5efb69e 100644
--- a/src/Umbraco.Web/Editors/AuthenticationController.cs
+++ b/src/Umbraco.Web/Editors/AuthenticationController.cs
@@ -55,7 +55,7 @@ namespace Umbraco.Web.Editors
public AuthenticationController(
IUserPasswordConfiguration passwordConfiguration,
- IGlobalSettings globalSettings,
+ GlobalSettings globalSettings,
IHostingEnvironment hostingEnvironment,
IUmbracoContextAccessor umbracoContextAccessor,
ISqlContext sqlContext,
diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs
index 95480f6632..26ca83413f 100644
--- a/src/Umbraco.Web/Editors/BackOfficeController.cs
+++ b/src/Umbraco.Web/Editors/BackOfficeController.cs
@@ -16,10 +16,8 @@ using Umbraco.Core.Services;
using Umbraco.Web.Features;
using Umbraco.Web.Security;
using Constants = Umbraco.Core.Constants;
-using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Hosting;
using BackOfficeIdentityUser = Umbraco.Core.BackOffice.BackOfficeIdentityUser;
-using Umbraco.Infrastructure.Configuration;
namespace Umbraco.Web.Editors
{
diff --git a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs
index af67cd4288..7b2cc04652 100644
--- a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs
+++ b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs
@@ -9,10 +9,8 @@ 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;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Web.Features;
using Umbraco.Web.Mvc;
using Umbraco.Web.Security;
@@ -29,7 +27,7 @@ namespace Umbraco.Web.Editors
private readonly UrlHelper _urlHelper;
private readonly IRuntimeState _runtimeState;
private readonly UmbracoFeatures _features;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly IUmbracoVersion _umbracoVersion;
private readonly ContentSettings _contentSettings;
private readonly TreeCollection _treeCollection;
@@ -43,7 +41,7 @@ namespace Umbraco.Web.Editors
UrlHelper urlHelper,
IRuntimeState runtimeState,
UmbracoFeatures features,
- IGlobalSettings globalSettings,
+ GlobalSettings globalSettings,
IUmbracoVersion umbracoVersion,
IOptions contentSettings,
TreeCollection treeCollection,
@@ -144,7 +142,7 @@ namespace Umbraco.Web.Editors
{
"umbracoSettings", new Dictionary
{
- {"umbracoPath", ConfigModelConversionsFromLegacy.ConvertGlobalSettings(_globalSettings).GetBackOfficePath(_hostingEnvironment)},
+ {"umbracoPath", _globalSettings.GetBackOfficePath(_hostingEnvironment)},
{"mediaPath", _hostingEnvironment.ToAbsolute(globalSettings.UmbracoMediaPath).TrimEnd('/')},
{"appPluginsPath", _hostingEnvironment.ToAbsolute(Constants.SystemDirectories.AppPlugins).TrimEnd('/')},
{
@@ -168,8 +166,8 @@ namespace Umbraco.Web.Editors
{"cssPath", _hostingEnvironment.ToAbsolute(globalSettings.UmbracoCssPath).TrimEnd('/')},
{"allowPasswordReset", _securitySettings.AllowPasswordReset},
{"loginBackgroundImage", _contentSettings.LoginBackgroundImage},
- {"showUserInvite", EmailSender.CanSendRequiredEmail(ConfigModelConversionsFromLegacy.ConvertGlobalSettings(globalSettings))},
- {"canSendRequiredEmail", EmailSender.CanSendRequiredEmail(ConfigModelConversionsFromLegacy.ConvertGlobalSettings(globalSettings))},
+ {"showUserInvite", EmailSender.CanSendRequiredEmail(globalSettings)},
+ {"canSendRequiredEmail", EmailSender.CanSendRequiredEmail(globalSettings)},
{"showAllowSegmentationForDocumentTypes", false},
}
},
diff --git a/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs b/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs
index 64aba378f4..4cd5a76fa4 100644
--- a/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs
+++ b/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs
@@ -1,7 +1,9 @@
using System;
+using Microsoft.Extensions.Options;
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Logging;
using Umbraco.Core.Mapping;
using Umbraco.Core.Persistence;
@@ -31,7 +33,7 @@ namespace Umbraco.Web.Editors
}
protected UmbracoAuthorizedJsonController(
- IGlobalSettings globalSettings,
+ GlobalSettings globalSettings,
IUmbracoContextAccessor umbracoContextAccessor,
ISqlContext sqlContext,
ServiceContext services,
diff --git a/src/Umbraco.Web/HtmlHelperRenderExtensions.cs b/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
index b94cb655c8..eccbe073cb 100644
--- a/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
+++ b/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
@@ -61,7 +61,7 @@ namespace Umbraco.Web
///
/// See: http://issues.umbraco.org/issue/U4-1614
///
- public static MvcHtmlString PreviewBadge(this HtmlHelper helper, IHttpContextAccessor httpContextAccessor, IGlobalSettings globalSettings, IIOHelper ioHelper, ContentSettings contentSettings)
+ public static MvcHtmlString PreviewBadge(this HtmlHelper helper, IHttpContextAccessor httpContextAccessor, GlobalSettings globalSettings, IIOHelper ioHelper, ContentSettings contentSettings)
{
if (Current.UmbracoContext.InPreviewMode)
{
diff --git a/src/Umbraco.Web/Mvc/AreaRegistrationExtensions.cs b/src/Umbraco.Web/Mvc/AreaRegistrationExtensions.cs
index 6d177651dc..e25ab4a69e 100644
--- a/src/Umbraco.Web/Mvc/AreaRegistrationExtensions.cs
+++ b/src/Umbraco.Web/Mvc/AreaRegistrationExtensions.cs
@@ -8,7 +8,6 @@ using Umbraco.Core;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Web.WebApi;
namespace Umbraco.Web.Mvc
diff --git a/src/Umbraco.Web/Mvc/BackOfficeArea.cs b/src/Umbraco.Web/Mvc/BackOfficeArea.cs
index bbb2078b10..eeb48c3b38 100644
--- a/src/Umbraco.Web/Mvc/BackOfficeArea.cs
+++ b/src/Umbraco.Web/Mvc/BackOfficeArea.cs
@@ -2,7 +2,6 @@
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Web.Editors;
namespace Umbraco.Web.Mvc
diff --git a/src/Umbraco.Web/Mvc/RenderNoContentController.cs b/src/Umbraco.Web/Mvc/RenderNoContentController.cs
index 9334591fbb..52ee7cf44d 100644
--- a/src/Umbraco.Web/Mvc/RenderNoContentController.cs
+++ b/src/Umbraco.Web/Mvc/RenderNoContentController.cs
@@ -1,6 +1,7 @@
using System;
using System.Web.Mvc;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.IO;
using Umbraco.Web.Models;
@@ -10,9 +11,9 @@ namespace Umbraco.Web.Mvc
{
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private readonly IIOHelper _ioHelper;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
- public RenderNoContentController(IUmbracoContextAccessor umbracoContextAccessor, IIOHelper ioHelper, IGlobalSettings globalSettings)
+ public RenderNoContentController(IUmbracoContextAccessor umbracoContextAccessor, IIOHelper ioHelper, GlobalSettings globalSettings)
{
_umbracoContextAccessor = umbracoContextAccessor ?? throw new ArgumentNullException(nameof(umbracoContextAccessor));
_ioHelper = ioHelper ?? throw new ArgumentNullException(nameof(ioHelper));
diff --git a/src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.cs b/src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.cs
index ee3596b7a5..64a9e56014 100644
--- a/src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.cs
+++ b/src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.cs
@@ -3,7 +3,7 @@ using System.Web;
using System.Web.Mvc;
using Umbraco.Core;
using Umbraco.Core.Configuration;
-using Umbraco.Infrastructure.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Web.Composing;
using Umbraco.Web.Security;
@@ -56,7 +56,7 @@ namespace Umbraco.Web.Mvc
{
if (redirectToUmbracoLogin)
{
- _redirectUrl = ConfigModelConversionsFromLegacy.ConvertGlobalSettings(/*Current.Configs.Global()*/ null).GetBackOfficePath(Current.HostingEnvironment).EnsureStartsWith("~");
+ _redirectUrl = new GlobalSettings().GetBackOfficePath(Current.HostingEnvironment).EnsureStartsWith("~");
}
}
diff --git a/src/Umbraco.Web/Runtime/WebInitialComponent.cs b/src/Umbraco.Web/Runtime/WebInitialComponent.cs
index 15261a2d6f..9108dd820e 100644
--- a/src/Umbraco.Web/Runtime/WebInitialComponent.cs
+++ b/src/Umbraco.Web/Runtime/WebInitialComponent.cs
@@ -11,7 +11,6 @@ using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
using Umbraco.Core.Strings;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Web.Mvc;
using Umbraco.Web.WebApi;
using Constants = Umbraco.Core.Constants;
diff --git a/src/Umbraco.Web/Security/AppBuilderExtensions.cs b/src/Umbraco.Web/Security/AppBuilderExtensions.cs
index 562c46d5e1..e51b68ef54 100644
--- a/src/Umbraco.Web/Security/AppBuilderExtensions.cs
+++ b/src/Umbraco.Web/Security/AppBuilderExtensions.cs
@@ -35,7 +35,7 @@ namespace Umbraco.Web.Security
///
/// By default this will be configured to execute on PipelineStage.Authenticate
///
- public static IAppBuilder UseUmbracoBackOfficeExternalCookieAuthentication(this IAppBuilder app, IUmbracoContextAccessor umbracoContextAccessor, IRuntimeState runtimeState,IGlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, IRequestCache requestCache)
+ public static IAppBuilder UseUmbracoBackOfficeExternalCookieAuthentication(this IAppBuilder app, IUmbracoContextAccessor umbracoContextAccessor, IRuntimeState runtimeState,GlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, IRequestCache requestCache)
{
return app.UseUmbracoBackOfficeExternalCookieAuthentication(umbracoContextAccessor, runtimeState, globalSettings, hostingEnvironment, requestCache, PipelineStage.Authenticate);
}
@@ -54,7 +54,7 @@ namespace Umbraco.Web.Security
///
public static IAppBuilder UseUmbracoBackOfficeExternalCookieAuthentication(this IAppBuilder app,
IUmbracoContextAccessor umbracoContextAccessor, IRuntimeState runtimeState,
- IGlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, IRequestCache requestCache, PipelineStage stage)
+ GlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, IRequestCache requestCache, PipelineStage stage)
{
if (app == null) throw new ArgumentNullException(nameof(app));
if (runtimeState == null) throw new ArgumentNullException(nameof(runtimeState));
diff --git a/src/Umbraco.Web/Security/BackOfficeCookieAuthenticationProvider.cs b/src/Umbraco.Web/Security/BackOfficeCookieAuthenticationProvider.cs
index 4daf695912..6ce61c90d6 100644
--- a/src/Umbraco.Web/Security/BackOfficeCookieAuthenticationProvider.cs
+++ b/src/Umbraco.Web/Security/BackOfficeCookieAuthenticationProvider.cs
@@ -21,11 +21,11 @@ namespace Umbraco.Web.Security
{
private readonly IUserService _userService;
private readonly IRuntimeState _runtimeState;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly IHostingEnvironment _hostingEnvironment;
private readonly SecuritySettings _securitySettings;
- public BackOfficeCookieAuthenticationProvider(IUserService userService, IRuntimeState runtimeState, IGlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, IOptions securitySettings)
+ public BackOfficeCookieAuthenticationProvider(IUserService userService, IRuntimeState runtimeState, GlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, IOptions securitySettings)
{
_userService = userService;
_runtimeState = runtimeState;
diff --git a/src/Umbraco.Web/Security/BackOfficeOwinUserManager.cs b/src/Umbraco.Web/Security/BackOfficeOwinUserManager.cs
index 51b5947a99..65d7836d42 100644
--- a/src/Umbraco.Web/Security/BackOfficeOwinUserManager.cs
+++ b/src/Umbraco.Web/Security/BackOfficeOwinUserManager.cs
@@ -8,10 +8,10 @@ using Microsoft.Owin.Security.DataProtection;
using Umbraco.Core;
using Umbraco.Core.BackOffice;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Mapping;
using Umbraco.Core.Security;
using Umbraco.Core.Services;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Net;
namespace Umbraco.Web.Security
@@ -21,7 +21,7 @@ namespace Umbraco.Web.Security
public const string OwinMarkerKey = "Umbraco.Web.Security.Identity.BackOfficeUserManagerMarker";
public BackOfficeOwinUserManager(
- IUserPasswordConfiguration passwordConfiguration,
+ IOptions passwordConfiguration,
IIpResolver ipResolver,
IUserStore store,
IOptions optionsAccessor,
@@ -31,9 +31,9 @@ namespace Umbraco.Web.Security
BackOfficeIdentityErrorDescriber errors,
IDataProtectionProvider dataProtectionProvider,
ILogger> logger)
- : base(ipResolver, store, optionsAccessor, null, userValidators, passwordValidators, keyNormalizer, errors, null, logger, Microsoft.Extensions.Options.Options.Create(ConfigModelConversionsFromLegacy.ConvertUserPasswordConfiguration(passwordConfiguration)))
+ : base(ipResolver, store, optionsAccessor, null, userValidators, passwordValidators, keyNormalizer, errors, null, logger, passwordConfiguration)
{
- PasswordConfiguration = passwordConfiguration;
+ PasswordConfiguration = passwordConfiguration.Value;
InitUserManager(this, dataProtectionProvider);
}
@@ -46,15 +46,15 @@ namespace Umbraco.Web.Security
IUserService userService,
IEntityService entityService,
IExternalLoginService externalLoginService,
- IGlobalSettings globalSettings,
+ IOptions globalSettings,
UmbracoMapper mapper,
- IUserPasswordConfiguration passwordConfiguration,
+ IOptions passwordConfiguration,
IIpResolver ipResolver,
BackOfficeIdentityErrorDescriber errors,
IDataProtectionProvider dataProtectionProvider,
ILogger> logger)
{
- var store = new BackOfficeUserStore(userService, entityService, externalLoginService, Microsoft.Extensions.Options.Options.Create(ConfigModelConversionsFromLegacy.ConvertGlobalSettings(globalSettings)), mapper);
+ var store = new BackOfficeUserStore(userService, entityService, externalLoginService, globalSettings, mapper);
return Create(
passwordConfiguration,
@@ -69,7 +69,7 @@ namespace Umbraco.Web.Security
/// Creates a BackOfficeUserManager instance with all default options and a custom BackOfficeUserManager instance
///
public static BackOfficeOwinUserManager Create(
- IUserPasswordConfiguration passwordConfiguration,
+ IOptions passwordConfiguration,
IIpResolver ipResolver,
IUserStore customUserStore,
BackOfficeIdentityErrorDescriber errors,
@@ -84,11 +84,11 @@ namespace Umbraco.Web.Security
// Configure validation logic for passwords
var passwordValidators = new List> { new PasswordValidator() };
- options.Password.RequiredLength = passwordConfiguration.RequiredLength;
- options.Password.RequireNonAlphanumeric = passwordConfiguration.RequireNonLetterOrDigit;
- options.Password.RequireDigit = passwordConfiguration.RequireDigit;
- options.Password.RequireLowercase = passwordConfiguration.RequireLowercase;
- options.Password.RequireUppercase = passwordConfiguration.RequireUppercase;
+ options.Password.RequiredLength = passwordConfiguration.Value.RequiredLength;
+ options.Password.RequireNonAlphanumeric = passwordConfiguration.Value.RequireNonLetterOrDigit;
+ options.Password.RequireDigit = passwordConfiguration.Value.RequireDigit;
+ options.Password.RequireLowercase = passwordConfiguration.Value.RequireLowercase;
+ options.Password.RequireUppercase = passwordConfiguration.Value.RequireUppercase;
// Ensure Umbraco security stamp claim type is used
options.ClaimsIdentity.UserIdClaimType = ClaimTypes.NameIdentifier;
@@ -97,7 +97,7 @@ namespace Umbraco.Web.Security
options.ClaimsIdentity.SecurityStampClaimType = Constants.Security.SecurityStampClaimType;
options.Lockout.AllowedForNewUsers = true;
- options.Lockout.MaxFailedAccessAttempts = passwordConfiguration.MaxFailedAccessAttemptsBeforeLockout;
+ options.Lockout.MaxFailedAccessAttempts = passwordConfiguration.Value.MaxFailedAccessAttemptsBeforeLockout;
//NOTE: This just needs to be in the future, we currently don't support a lockout timespan, it's either they are locked
// or they are not locked, but this determines what is set on the account lockout date which corresponds to whether they are
// locked out or not.
diff --git a/src/Umbraco.Web/Security/BackOfficeSignInManager.cs b/src/Umbraco.Web/Security/BackOfficeSignInManager.cs
index fe90db9ec7..0dc86f7b1b 100644
--- a/src/Umbraco.Web/Security/BackOfficeSignInManager.cs
+++ b/src/Umbraco.Web/Security/BackOfficeSignInManager.cs
@@ -9,8 +9,7 @@ using Microsoft.Owin.Logging;
using Microsoft.Owin.Security;
using Umbraco.Core;
using Umbraco.Core.BackOffice;
-using Umbraco.Core.Configuration;
-using Umbraco.Infrastructure.Configuration;
+using Umbraco.Core.Configuration.Models;
namespace Umbraco.Web.Security
{
@@ -25,7 +24,7 @@ namespace Umbraco.Web.Security
private readonly IUserClaimsPrincipalFactory _claimsPrincipalFactory;
private readonly IAuthenticationManager _authenticationManager;
private readonly ILogger _logger;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly IOwinRequest _request;
public BackOfficeSignInManager(
@@ -33,7 +32,7 @@ namespace Umbraco.Web.Security
IUserClaimsPrincipalFactory claimsPrincipalFactory,
IAuthenticationManager authenticationManager,
ILogger logger,
- IGlobalSettings globalSettings,
+ GlobalSettings globalSettings,
IOwinRequest request)
{
_userManager = userManager ?? throw new ArgumentNullException(nameof(userManager));
@@ -52,7 +51,7 @@ namespace Umbraco.Web.Security
return claimsPrincipal.Identity as ClaimsIdentity;
}
- public static BackOfficeSignInManager Create(IOwinContext context, IGlobalSettings globalSettings, ILogger logger)
+ public static BackOfficeSignInManager Create(IOwinContext context, GlobalSettings globalSettings, ILogger logger)
{
var userManager = context.GetBackOfficeUserManager();
@@ -78,7 +77,7 @@ namespace Umbraco.Web.Security
var user = await _userManager.FindByNameAsync(userName);
//if the user is null, create an empty one which can be used for auto-linking
- if (user == null) user = BackOfficeIdentityUser.CreateNew(ConfigModelConversionsFromLegacy.ConvertGlobalSettings(_globalSettings), userName, null, _globalSettings.DefaultUILanguage);
+ if (user == null) user = BackOfficeIdentityUser.CreateNew(_globalSettings, userName, null, _globalSettings.DefaultUILanguage);
//check the password for the user, this will allow a developer to auto-link
//an account if they have specified an IBackOfficeUserPasswordChecker
@@ -248,7 +247,7 @@ namespace Umbraco.Web.Security
}
return null;
}
-
+
///
/// Two factor verification step
///
diff --git a/src/Umbraco.Web/Security/GetUserSecondsMiddleWare.cs b/src/Umbraco.Web/Security/GetUserSecondsMiddleWare.cs
index 83b6843a39..62724a4846 100644
--- a/src/Umbraco.Web/Security/GetUserSecondsMiddleWare.cs
+++ b/src/Umbraco.Web/Security/GetUserSecondsMiddleWare.cs
@@ -9,9 +9,7 @@ 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;
namespace Umbraco.Web.Security
{
@@ -26,7 +24,7 @@ namespace Umbraco.Web.Security
internal class GetUserSecondsMiddleWare : OwinMiddleware
{
private readonly UmbracoBackOfficeCookieAuthOptions _authOptions;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly SecuritySettings _security;
private readonly ILogger _logger;
private readonly IHostingEnvironment _hostingEnvironment;
@@ -34,7 +32,7 @@ namespace Umbraco.Web.Security
public GetUserSecondsMiddleWare(
OwinMiddleware next,
UmbracoBackOfficeCookieAuthOptions authOptions,
- IGlobalSettings globalSettings,
+ GlobalSettings globalSettings,
IOptions security,
ILogger logger,
IHostingEnvironment hostingEnvironment)
@@ -54,7 +52,7 @@ namespace Umbraco.Web.Security
if (request.Uri.Scheme.InvariantStartsWith("http")
&& request.Uri.AbsolutePath.InvariantEquals(
- $"{ConfigModelConversionsFromLegacy.ConvertGlobalSettings(_globalSettings).GetBackOfficePath(_hostingEnvironment)}/backoffice/UmbracoApi/Authentication/GetRemainingTimeoutSeconds"))
+ $"{_globalSettings.GetBackOfficePath(_hostingEnvironment)}/backoffice/UmbracoApi/Authentication/GetRemainingTimeoutSeconds"))
{
var cookie = _authOptions.CookieManager.GetRequestCookie(context, _security.AuthCookieName);
if (cookie.IsNullOrWhiteSpace() == false)
diff --git a/src/Umbraco.Web/UmbracoApplicationBase.cs b/src/Umbraco.Web/UmbracoApplicationBase.cs
index 93167b76e0..3bf1b6be12 100644
--- a/src/Umbraco.Web/UmbracoApplicationBase.cs
+++ b/src/Umbraco.Web/UmbracoApplicationBase.cs
@@ -10,15 +10,12 @@ using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Legacy;
using Umbraco.Core.Configuration.Models;
-using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Hosting;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Logging.Serilog;
using Umbraco.Core.Logging.Serilog.Enrichers;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Net;
using Umbraco.Web.Hosting;
using Umbraco.Web.Logging;
@@ -46,7 +43,7 @@ namespace Umbraco.Web
//var configFactory = new ConfigsFactory();
HostingSettings hostingSettings = null;
- IGlobalSettings globalSettings = null;
+ GlobalSettings globalSettings = null;
SecuritySettings securitySettings = null;
WebRoutingSettings webRoutingSettings = null;
@@ -62,7 +59,7 @@ namespace Umbraco.Web
var profiler = GetWebProfiler(hostingEnvironment);
Umbraco.Composing.Current.Initialize(logger,
securitySettings,
- ConfigModelConversionsFromLegacy.ConvertGlobalSettings(globalSettings),
+ globalSettings,
ioHelper, hostingEnvironment, backOfficeInfo, profiler);
Logger = logger;
}
diff --git a/src/Umbraco.Web/UmbracoContext.cs b/src/Umbraco.Web/UmbracoContext.cs
index 563435e9f9..bda836c847 100644
--- a/src/Umbraco.Web/UmbracoContext.cs
+++ b/src/Umbraco.Web/UmbracoContext.cs
@@ -1,11 +1,9 @@
using System;
using System.Web;
using Umbraco.Core;
-using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
using Umbraco.Core.Models.PublishedContent;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Web.Composing;
using Umbraco.Web.PublishedCache;
using Umbraco.Web.Routing;
diff --git a/src/Umbraco.Web/UmbracoDefaultOwinStartup.cs b/src/Umbraco.Web/UmbracoDefaultOwinStartup.cs
index 79ec56cfd3..edd429946f 100644
--- a/src/Umbraco.Web/UmbracoDefaultOwinStartup.cs
+++ b/src/Umbraco.Web/UmbracoDefaultOwinStartup.cs
@@ -30,7 +30,7 @@ namespace Umbraco.Web
public class UmbracoDefaultOwinStartup
{
protected IUmbracoContextAccessor UmbracoContextAccessor => Current.UmbracoContextAccessor;
- protected IGlobalSettings GlobalSettings => Current.Factory.GetInstance();
+ protected GlobalSettings GlobalSettings => Current.Factory.GetInstance();
protected SecuritySettings SecuritySettings => Current.Factory.GetInstance>().Value;
protected IUserPasswordConfiguration UserPasswordConfig => Current.Factory.GetInstance();
protected IRuntimeState RuntimeState => Current.RuntimeState;
diff --git a/src/Umbraco.Web/UmbracoInjectedModule.cs b/src/Umbraco.Web/UmbracoInjectedModule.cs
index 3bd627be71..06b8953338 100644
--- a/src/Umbraco.Web/UmbracoInjectedModule.cs
+++ b/src/Umbraco.Web/UmbracoInjectedModule.cs
@@ -4,11 +4,11 @@ using System.Web.Routing;
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Exceptions;
using Umbraco.Core.Hosting;
using Umbraco.Core.Logging;
using Umbraco.Core.Security;
-using Umbraco.Infrastructure.Configuration;
using Umbraco.Web.Composing;
using Umbraco.Web.Routing;
@@ -37,7 +37,7 @@ namespace Umbraco.Web
private readonly IUmbracoContextFactory _umbracoContextFactory;
private readonly RoutableDocumentFilter _routableDocumentLookup;
private readonly IRequestCache _requestCache;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly IHostingEnvironment _hostingEnvironment;
private readonly UriUtility _uriUtility;
@@ -49,7 +49,7 @@ namespace Umbraco.Web
RoutableDocumentFilter routableDocumentLookup,
UriUtility uriUtility,
IRequestCache requestCache,
- IGlobalSettings globalSettings,
+ GlobalSettings globalSettings,
IHostingEnvironment hostingEnvironment)
{
_runtime = runtime;
@@ -111,7 +111,7 @@ namespace Umbraco.Web
var umbracoContext = Current.UmbracoContext;
// re-write for the default back office path
- if (httpContext.Request.Url.IsDefaultBackOfficeRequest(ConfigModelConversionsFromLegacy.ConvertGlobalSettings(_globalSettings), _hostingEnvironment))
+ if (httpContext.Request.Url.IsDefaultBackOfficeRequest(_globalSettings, _hostingEnvironment))
{
if (EnsureRuntime(httpContext, umbracoContext.OriginalRequestUrl))
RewriteToBackOfficeHandler(httpContext);
@@ -244,7 +244,7 @@ namespace Umbraco.Web
private void RewriteToBackOfficeHandler(HttpContextBase context)
{
// GlobalSettings.Path has already been through IOHelper.ResolveUrl() so it begins with / and vdir (if any)
- var rewritePath = ConfigModelConversionsFromLegacy.ConvertGlobalSettings(_globalSettings).GetBackOfficePath(_hostingEnvironment).TrimEnd('/') + "/Default";
+ var rewritePath = _globalSettings.GetBackOfficePath(_hostingEnvironment).TrimEnd('/') + "/Default";
// rewrite the path to the path of the handler (i.e. /umbraco/RenderMvc)
context.RewritePath(rewritePath, "", "", false);
@@ -277,7 +277,7 @@ namespace Umbraco.Web
var query = pcr.Uri.Query.TrimStart('?');
// GlobalSettings.Path has already been through IOHelper.ResolveUrl() so it begins with / and vdir (if any)
- var rewritePath = ConfigModelConversionsFromLegacy.ConvertGlobalSettings(_globalSettings).GetBackOfficePath(_hostingEnvironment).TrimEnd('/') + "/RenderMvc";
+ var rewritePath = _globalSettings.GetBackOfficePath(_hostingEnvironment).TrimEnd('/') + "/RenderMvc";
// rewrite the path to the path of the handler (i.e. /umbraco/RenderMvc)
context.RewritePath(rewritePath, "", query, false);
@@ -295,7 +295,7 @@ namespace Umbraco.Web
}
-
+
#endregion
#region IHttpModule
diff --git a/src/Umbraco.Web/UmbracoWebService.cs b/src/Umbraco.Web/UmbracoWebService.cs
index b8d69f5b62..a0d12cba93 100644
--- a/src/Umbraco.Web/UmbracoWebService.cs
+++ b/src/Umbraco.Web/UmbracoWebService.cs
@@ -1,14 +1,7 @@
-using System;
-using System.Web;
-using System.Web.Mvc;
-using System.Web.Routing;
+using System.Web.Mvc;
using System.Web.Services;
-using Umbraco.Core;
-using Umbraco.Core.Cache;
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Configuration.Legacy;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Logging;
-using Umbraco.Core.Persistence;
using Umbraco.Core.Services;
using Umbraco.Web.Composing;
using Umbraco.Web.Security;
@@ -22,7 +15,7 @@ namespace Umbraco.Web
{
private UrlHelper _url;
- protected UmbracoWebService(IProfilingLogger profilingLogger, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, IGlobalSettings globalSettings)
+ protected UmbracoWebService(IProfilingLogger profilingLogger, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, GlobalSettings globalSettings)
{
Logger = profilingLogger;
ProfilingLogger = profilingLogger;
@@ -64,7 +57,7 @@ namespace Umbraco.Web
///
/// Gets the global settings.
///
- public IGlobalSettings GlobalSettings { get; }
+ public GlobalSettings GlobalSettings { get; }
///
/// Gets the web security helper.
diff --git a/src/Umbraco.Web/WebApi/UmbracoApiController.cs b/src/Umbraco.Web/WebApi/UmbracoApiController.cs
index a832b4e823..724ea810c9 100644
--- a/src/Umbraco.Web/WebApi/UmbracoApiController.cs
+++ b/src/Umbraco.Web/WebApi/UmbracoApiController.cs
@@ -3,6 +3,7 @@ using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Logging;
using Umbraco.Core.Mapping;
using Umbraco.Core.Persistence;
@@ -20,7 +21,7 @@ namespace Umbraco.Web.WebApi
{
}
- protected UmbracoApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider)
+ protected UmbracoApiController(GlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider)
: base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider)
{
}
diff --git a/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs b/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs
index d009528bc7..7c15775f7b 100644
--- a/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs
+++ b/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs
@@ -6,6 +6,7 @@ using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Web.Composing;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Logging;
using Umbraco.Core.Mapping;
using Umbraco.Core.Persistence;
@@ -38,7 +39,7 @@ namespace Umbraco.Web.WebApi
/// Dependencies are obtained from the service locator.
protected UmbracoApiControllerBase()
: this(
- Current.Factory.GetInstance(),
+ Current.Factory.GetInstance(),
Current.Factory.GetInstance(),
Current.Factory.GetInstance(),
Current.Factory.GetInstance(),
@@ -53,10 +54,9 @@ namespace Umbraco.Web.WebApi
///
/// Initializes a new instance of the class with all its dependencies.
///
- protected UmbracoApiControllerBase(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider)
+ protected UmbracoApiControllerBase(GlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider)
{
UmbracoContextAccessor = umbracoContextAccessor;
- GlobalSettings = globalSettings;
SqlContext = sqlContext;
Services = services;
AppCaches = appCaches;
@@ -72,11 +72,6 @@ namespace Umbraco.Web.WebApi
/// For debugging purposes.
internal Guid InstanceId { get; } = Guid.NewGuid();
- ///
- /// Gets the Umbraco context.
- ///
- public virtual IGlobalSettings GlobalSettings { get; }
-
///
/// Gets the Umbraco context.
///
diff --git a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
index 015cb3c6bc..7858d6955a 100644
--- a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
+++ b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
@@ -1,6 +1,7 @@
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Logging;
using Umbraco.Web.WebApi.Filters;
using Umbraco.Core.Persistence;
@@ -35,7 +36,7 @@ namespace Umbraco.Web.WebApi
{
}
- protected UmbracoAuthorizedApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider)
+ protected UmbracoAuthorizedApiController(GlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider)
: base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider)
{
}
diff --git a/src/Umbraco.Web/WebAssets/CDF/UmbracoClientDependencyLoader.cs b/src/Umbraco.Web/WebAssets/CDF/UmbracoClientDependencyLoader.cs
index a89cf8f908..a0704140f1 100644
--- a/src/Umbraco.Web/WebAssets/CDF/UmbracoClientDependencyLoader.cs
+++ b/src/Umbraco.Web/WebAssets/CDF/UmbracoClientDependencyLoader.cs
@@ -2,6 +2,7 @@
using ClientDependency.Core.Controls;
using ClientDependency.Core.FileRegistration.Providers;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.IO;
namespace Umbraco.Web.WebAssets.CDF
@@ -15,7 +16,7 @@ namespace Umbraco.Web.WebAssets.CDF
///
/// Set the defaults
///
- public UmbracoClientDependencyLoader(IGlobalSettings globalSettings, IIOHelper ioHelper)
+ public UmbracoClientDependencyLoader(GlobalSettings globalSettings, IIOHelper ioHelper)
: base()
{
this.AddPath("UmbracoRoot", ioHelper.ResolveUrl(globalSettings.UmbracoPath));
@@ -23,7 +24,7 @@ namespace Umbraco.Web.WebAssets.CDF
}
- public static ClientDependencyLoader TryCreate(Control parent, out bool isNew, IGlobalSettings globalSettings, IIOHelper ioHelper)
+ public static ClientDependencyLoader TryCreate(Control parent, out bool isNew, GlobalSettings globalSettings, IIOHelper ioHelper)
{
if (ClientDependencyLoader.Instance == null)
{