Files
Umbraco-CMS/src/Umbraco.Core/Install/InstallSteps/FilePermissionsStep.cs
Mole bf41c2eeaa Netcore: Align namespaces (#9801)
* 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
2021-02-18 11:06:02 +01:00

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;
}
}