* Rename Umbraco.Core namespace to Umbraco.Cms.Core * Move extension methods in core project to Umbraco.Extensions * Move extension methods in core project to Umbraco.Extensions * Rename Umbraco.Examine namespace to Umbraco.Cms.Examine * Move examine extensions to Umbraco.Extensions namespace * Reflect changed namespaces in Builder and fix unit tests * Adjust namespace in Umbraco.ModelsBuilder.Embedded * Adjust namespace in Umbraco.Persistence.SqlCe * Adjust namespace in Umbraco.PublishedCache.NuCache * Align namespaces in Umbraco.Web.BackOffice * Align namespaces in Umbraco.Web.Common * Ensure that SqlCeSupport is still enabled after changing the namespace * Align namespaces in Umbraco.Web.Website * Align namespaces in Umbraco.Web.UI.NetCore * Align namespaces in Umbraco.Tests.Common * Align namespaces in Umbraco.Tests.UnitTests * Align namespaces in Umbraco.Tests.Integration * Fix errors caused by changed namespaces * Fix integration tests * Undo the Umbraco.Examine.Lucene namespace change This breaks integration tests on linux, since the namespace wont exists there because it's only used on windows. * Fix merge * Fix Merge
57 lines
2.0 KiB
C#
57 lines
2.0 KiB
C#
// Copyright (c) Umbraco.
|
|
// See LICENSE for more details.
|
|
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Umbraco.Cms.Core.Install.Models;
|
|
using Umbraco.Cms.Core.Services;
|
|
using Umbraco.Extensions;
|
|
|
|
namespace Umbraco.Cms.Core.Install.InstallSteps
|
|
{
|
|
/// <summary>
|
|
/// Represents a step in the installation that ensure all the required permissions on files and folders are correct.
|
|
/// </summary>
|
|
[InstallSetupStep(
|
|
InstallationType.NewInstall | InstallationType.Upgrade,
|
|
"Permissions",
|
|
0,
|
|
"",
|
|
PerformsAppRestart = true)]
|
|
public class FilePermissionsStep : InstallSetupStep<object>
|
|
{
|
|
private readonly IFilePermissionHelper _filePermissionHelper;
|
|
private readonly ILocalizedTextService _localizedTextService;
|
|
|
|
/// <summary>
|
|
/// Initializes a new instance of the <see cref="FilePermissionsStep"/> class.
|
|
/// </summary>
|
|
public FilePermissionsStep(
|
|
IFilePermissionHelper filePermissionHelper,
|
|
ILocalizedTextService localizedTextService)
|
|
{
|
|
_filePermissionHelper = filePermissionHelper;
|
|
_localizedTextService = localizedTextService;
|
|
}
|
|
|
|
/// <inheritdoc/>
|
|
public override Task<InstallSetupResult> ExecuteAsync(object model)
|
|
{
|
|
// validate file permissions
|
|
var permissionsOk = _filePermissionHelper.RunFilePermissionTestSuite(out Dictionary<FilePermissionTest, IEnumerable<string>> report);
|
|
|
|
var translatedErrors = report.ToDictionary(x => _localizedTextService.Localize("permissions", x.Key), x => x.Value);
|
|
if (permissionsOk == false)
|
|
{
|
|
throw new InstallException("Permission check failed", "permissionsreport", new { errors = translatedErrors });
|
|
}
|
|
|
|
return Task.FromResult<InstallSetupResult>(null);
|
|
}
|
|
|
|
/// <inheritdoc/>
|
|
public override bool RequiresExecution(object model) => true;
|
|
}
|
|
}
|