Merge options

This commit is contained in:
Mole
2020-09-18 12:53:06 +02:00
534 changed files with 3775 additions and 7248 deletions

View File

@@ -8,6 +8,8 @@ using Umbraco.Core.Configuration;
using Umbraco.Core.Install;
using Umbraco.Core.IO;
using Umbraco.Web.PublishedCache;
using Umbraco.Core.Configuration.Models;
using Microsoft.Extensions.Options;
namespace Umbraco.Web.Install
{
@@ -19,13 +21,13 @@ namespace Umbraco.Web.Install
// ensure Umbraco can write to these files (the directories must exist)
private readonly string[] _permissionFiles = { };
private readonly IGlobalSettings _globalSettings;
private readonly GlobalSettings _globalSettings;
private readonly IIOHelper _ioHelper;
private readonly IPublishedSnapshotService _publishedSnapshotService;
public FilePermissionHelper(IGlobalSettings globalSettings, IIOHelper ioHelper, IPublishedSnapshotService publishedSnapshotService)
public FilePermissionHelper(IOptions<GlobalSettings> globalSettings, IIOHelper ioHelper, IPublishedSnapshotService publishedSnapshotService)
{
_globalSettings = globalSettings;
_globalSettings = globalSettings.Value;
_ioHelper = ioHelper;
_publishedSnapshotService = publishedSnapshotService;
_permissionDirs = new[] { _globalSettings.UmbracoCssPath, Constants.SystemDirectories.Config, Constants.SystemDirectories.Data, _globalSettings.UmbracoMediaPath, Constants.SystemDirectories.Preview };

View File

@@ -13,6 +13,8 @@ using Umbraco.Core.Persistence;
using Umbraco.Core.Serialization;
using Umbraco.Core.Services;
using Umbraco.Web.Install.Models;
using Microsoft.Extensions.Options;
using Umbraco.Core.Configuration.Models;
namespace Umbraco.Web.Install
{
@@ -22,7 +24,7 @@ namespace Umbraco.Web.Install
private readonly DatabaseBuilder _databaseBuilder;
private readonly ILogger _logger;
private readonly IUmbracoVersion _umbracoVersion;
private readonly IConnectionStrings _connectionStrings;
private readonly ConnectionStrings _connectionStrings;
private readonly IInstallationService _installationService;
private readonly ICookieManager _cookieManager;
private readonly IUserAgentProvider _userAgentProvider;
@@ -33,7 +35,7 @@ namespace Umbraco.Web.Install
public InstallHelper(DatabaseBuilder databaseBuilder,
ILogger logger,
IUmbracoVersion umbracoVersion,
IConnectionStrings connectionStrings,
IOptions<ConnectionStrings> connectionStrings,
IInstallationService installationService,
ICookieManager cookieManager,
IUserAgentProvider userAgentProvider,
@@ -43,7 +45,7 @@ namespace Umbraco.Web.Install
_logger = logger;
_umbracoVersion = umbracoVersion;
_databaseBuilder = databaseBuilder;
_connectionStrings = connectionStrings ?? throw new ArgumentNullException(nameof(connectionStrings));
_connectionStrings = connectionStrings.Value ?? throw new ArgumentNullException(nameof(connectionStrings));
_installationService = installationService;
_cookieManager = cookieManager;
_userAgentProvider = userAgentProvider;
@@ -114,7 +116,7 @@ namespace Umbraco.Web.Install
{
get
{
var databaseSettings = _connectionStrings[Constants.System.UmbracoConnectionName];
var databaseSettings = _connectionStrings.UmbracoConnectionString;
if (databaseSettings.IsConnectionStringConfigured() == false)
{
//no version or conn string configured, must be a brand new install

View File

@@ -5,7 +5,8 @@ using Umbraco.Core;
using Umbraco.Core.Logging;
using Umbraco.Core.Migrations.Install;
using Umbraco.Web.Install.Models;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Microsoft.Extensions.Options;
namespace Umbraco.Web.Install.InstallSteps
{
@@ -16,12 +17,12 @@ namespace Umbraco.Web.Install.InstallSteps
{
private readonly DatabaseBuilder _databaseBuilder;
private readonly ILogger _logger;
private readonly IConnectionStrings _connectionStrings;
private readonly ConnectionStrings _connectionStrings;
public DatabaseConfigureStep(DatabaseBuilder databaseBuilder, IConnectionStrings connectionStrings)
public DatabaseConfigureStep(DatabaseBuilder databaseBuilder, IOptions<ConnectionStrings> connectionStrings)
{
_databaseBuilder = databaseBuilder;
_connectionStrings = connectionStrings ?? throw new ArgumentNullException(nameof(connectionStrings));
_connectionStrings = connectionStrings.Value ?? throw new ArgumentNullException(nameof(connectionStrings));
}
public override Task<InstallSetupResult> ExecuteAsync(DatabaseModel database)
@@ -107,7 +108,7 @@ namespace Umbraco.Web.Install.InstallSteps
private bool ShouldDisplayView()
{
//If the connection string is already present in web.config we don't need to show the settings page and we jump to installing/upgrading.
var databaseSettings = _connectionStrings[Constants.System.UmbracoConnectionName];
var databaseSettings = _connectionStrings.UmbracoConnectionString;
if (databaseSettings.IsConnectionStringConfigured())
{

View File

@@ -16,19 +16,11 @@ namespace Umbraco.Web.Install.InstallSteps
{
private readonly DatabaseBuilder _databaseBuilder;
private readonly IRuntimeState _runtime;
private readonly ILogger _logger;
private readonly IIOHelper _ioHelper;
private readonly IConnectionStrings _connectionStrings;
private readonly IConfigManipulator _configManipulator;
public DatabaseInstallStep(DatabaseBuilder databaseBuilder, IRuntimeState runtime, ILogger logger, IIOHelper ioHelper, IConnectionStrings connectionStrings, IConfigManipulator configManipulator)
public DatabaseInstallStep(DatabaseBuilder databaseBuilder, IRuntimeState runtime)
{
_databaseBuilder = databaseBuilder;
_runtime = runtime;
_logger = logger;
_ioHelper = ioHelper;
_connectionStrings = connectionStrings;
_configManipulator = configManipulator;
}
public override Task<InstallSetupResult> ExecuteAsync(object model)

View File

@@ -1,8 +1,10 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
using Umbraco.Core;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Migrations.Install;
@@ -20,29 +22,20 @@ namespace Umbraco.Web.Install.InstallSteps
private readonly IRuntimeState _runtime;
private readonly ILogger _logger;
private readonly IUmbracoVersion _umbracoVersion;
private readonly IGlobalSettings _globalSettings;
private readonly IConnectionStrings _connectionStrings;
private readonly IIOHelper _ioHelper;
private readonly IConfigManipulator _configManipulator;
private readonly ConnectionStrings _connectionStrings;
public DatabaseUpgradeStep(
DatabaseBuilder databaseBuilder,
IRuntimeState runtime,
ILogger logger,
IUmbracoVersion umbracoVersion,
IGlobalSettings globalSettings,
IConnectionStrings connectionStrings,
IIOHelper ioHelper,
IConfigManipulator configManipulator)
IOptions<ConnectionStrings> connectionStrings)
{
_databaseBuilder = databaseBuilder;
_runtime = runtime;
_logger = logger;
_umbracoVersion = umbracoVersion;
_globalSettings = globalSettings;
_connectionStrings = connectionStrings ?? throw new ArgumentNullException(nameof(connectionStrings));
_ioHelper = ioHelper;
_configManipulator = configManipulator;
_connectionStrings = connectionStrings.Value ?? throw new ArgumentNullException(nameof(connectionStrings));
}
public override Task<InstallSetupResult> ExecuteAsync(object model)
@@ -55,7 +48,7 @@ namespace Umbraco.Web.Install.InstallSteps
{
_logger.LogInformation("Running 'Upgrade' service");
var plan = new UmbracoPlan(_umbracoVersion, _globalSettings);
var plan = new UmbracoPlan(_umbracoVersion);
plan.AddPostMigration<ClearCsrfCookies>(); // needed when running installer (back-office)
var result = _databaseBuilder.UpgradeSchemaAndData(plan);
@@ -82,7 +75,7 @@ namespace Umbraco.Web.Install.InstallSteps
return false;
}
var databaseSettings = _connectionStrings[Constants.System.UmbracoConnectionName];
var databaseSettings = _connectionStrings.UmbracoConnectionString;
if (databaseSettings.IsConnectionStringConfigured())
{

View File

@@ -3,15 +3,16 @@ using System.Collections.Specialized;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Umbraco.Core;
using Umbraco.Core.BackOffice;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Migrations.Install;
using Umbraco.Core.Services;
using Umbraco.Web.Install.Models;
using Umbraco.Core.BackOffice;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Extensions;
using Umbraco.Web.Install.Models;
namespace Umbraco.Web.Install.InstallSteps
{
@@ -29,21 +30,26 @@ namespace Umbraco.Web.Install.InstallSteps
private readonly IUserService _userService;
private readonly DatabaseBuilder _databaseBuilder;
private static HttpClient _httpClient;
private readonly IGlobalSettings _globalSettings;
private readonly IUserPasswordConfiguration _passwordConfiguration;
private readonly ISecuritySettings _securitySettings;
private readonly IConnectionStrings _connectionStrings;
private readonly UserPasswordConfigurationSettings _passwordConfiguration;
private readonly SecuritySettings _securitySettings;
private readonly ConnectionStrings _connectionStrings;
private readonly ICookieManager _cookieManager;
private readonly BackOfficeUserManager _userManager;
public NewInstallStep(IUserService userService, DatabaseBuilder databaseBuilder, IGlobalSettings globalSettings, IUserPasswordConfiguration passwordConfiguration, ISecuritySettings securitySettings, IConnectionStrings connectionStrings, ICookieManager cookieManager, BackOfficeUserManager userManager)
public NewInstallStep(
IUserService userService,
DatabaseBuilder databaseBuilder,
IOptions<UserPasswordConfigurationSettings> passwordConfiguration,
IOptions<SecuritySettings> securitySettings,
IOptions<ConnectionStrings> connectionStrings,
ICookieManager cookieManager,
BackOfficeUserManager userManager)
{
_userService = userService ?? throw new ArgumentNullException(nameof(userService));
_databaseBuilder = databaseBuilder ?? throw new ArgumentNullException(nameof(databaseBuilder));
_globalSettings = globalSettings ?? throw new ArgumentNullException(nameof(globalSettings));
_passwordConfiguration = passwordConfiguration ?? throw new ArgumentNullException(nameof(passwordConfiguration));
_securitySettings = securitySettings ?? throw new ArgumentNullException(nameof(securitySettings));
_connectionStrings = connectionStrings ?? throw new ArgumentNullException(nameof(connectionStrings));
_passwordConfiguration = passwordConfiguration.Value ?? throw new ArgumentNullException(nameof(passwordConfiguration));
_securitySettings = securitySettings.Value ?? throw new ArgumentNullException(nameof(securitySettings));
_connectionStrings = connectionStrings.Value ?? throw new ArgumentNullException(nameof(connectionStrings));
_cookieManager = cookieManager;
_userManager = userManager ?? throw new ArgumentNullException(nameof(userManager));
}
@@ -126,7 +132,7 @@ namespace Umbraco.Web.Install.InstallSteps
public override bool RequiresExecution(UserModel model)
{
//now we have to check if this is really a new install, the db might be configured and might contain data
var databaseSettings = _connectionStrings[Constants.System.UmbracoConnectionName];
var databaseSettings = _connectionStrings.UmbracoConnectionString;
if (databaseSettings.IsConnectionStringConfigured() && _databaseBuilder.IsDatabaseConfigured)
return _databaseBuilder.HasSomeNonDefaultUser() == false;