Updated healthchecks to show a link to documentation instead of trying to fix something that can often not be fixed automatically.

This commit is contained in:
Bjarke Berg
2021-02-03 07:42:56 +01:00
parent 04058fb9c6
commit 8624a246ba
55 changed files with 745 additions and 459 deletions

View File

@@ -1,38 +1,56 @@
using System;
// Copyright (c) Umbraco.
// See LICENSE for more details.
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Umbraco.Core;
using Umbraco.Core.Install;
using Umbraco.Core.Services;
using Umbraco.Web.Install;
using Umbraco.Web.Install.Models;
namespace Umbraco.Web.Install.InstallSteps
namespace Umbraco.Core.Install.InstallSteps
{
[InstallSetupStep(InstallationType.NewInstall | InstallationType.Upgrade,
"Permissions", 0, "",
/// <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;
public FilePermissionsStep(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
Dictionary<string, IEnumerable<string>> report;
var permissionsOk = _filePermissionHelper.RunFilePermissionTestSuite(out report);
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 = report });
{
throw new InstallException("Permission check failed", "permissionsreport", new { errors = translatedErrors });
}
return Task.FromResult<InstallSetupResult>(null);
}
public override bool RequiresExecution(object model)
{
return true;
}
/// <inheritdoc/>
public override bool RequiresExecution(object model) => true;
}
}