Port 7.7 - WIP
This commit is contained in:
@@ -30,8 +30,7 @@ namespace Umbraco.Web.HealthCheck.Checks.Config
|
||||
{
|
||||
get
|
||||
{
|
||||
return TextService.Localize("healthcheck/customErrorsCheckSuccessMessage",
|
||||
new[] { Values.First(v => v.IsRecommended).Value });
|
||||
return TextService.Localize("healthcheck/customErrorsCheckSuccessMessage", new[] { CurrentValue });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,12 +59,10 @@ namespace Umbraco.Web.HealthCheck.Checks.Permissions
|
||||
// in ALL circumstances or just some
|
||||
var pathsToCheck = new Dictionary<string, PermissionCheckRequirement>
|
||||
{
|
||||
{ SystemDirectories.AppCode, PermissionCheckRequirement.Optional },
|
||||
{ SystemDirectories.Data, PermissionCheckRequirement.Required },
|
||||
{ SystemDirectories.Packages, PermissionCheckRequirement.Required},
|
||||
{ SystemDirectories.Preview, PermissionCheckRequirement.Required },
|
||||
{ SystemDirectories.AppPlugins, PermissionCheckRequirement.Required },
|
||||
{ SystemDirectories.Bin, PermissionCheckRequirement.Optional },
|
||||
{ SystemDirectories.Config, PermissionCheckRequirement.Optional },
|
||||
{ SystemDirectories.Css, PermissionCheckRequirement.Optional },
|
||||
{ SystemDirectories.Masterpages, PermissionCheckRequirement.Optional },
|
||||
@@ -77,11 +75,32 @@ namespace Umbraco.Web.HealthCheck.Checks.Permissions
|
||||
{ SystemDirectories.Xslt, PermissionCheckRequirement.Optional },
|
||||
};
|
||||
|
||||
//These are special paths to check that will restart an app domain if a file is written to them,
|
||||
//so these need to be tested differently
|
||||
var pathsToCheckWithRestarts = new Dictionary<string, PermissionCheckRequirement>
|
||||
{
|
||||
{ SystemDirectories.AppCode, PermissionCheckRequirement.Optional },
|
||||
{ SystemDirectories.Bin, PermissionCheckRequirement.Optional }
|
||||
};
|
||||
|
||||
// Run checks for required and optional paths for modify permission
|
||||
IEnumerable<string> requiredFailedPaths;
|
||||
IEnumerable<string> optionalFailedPaths;
|
||||
var requiredPathCheckResult = FilePermissionHelper.EnsureDirectories(GetPathsToCheck(pathsToCheck, PermissionCheckRequirement.Required), out requiredFailedPaths);
|
||||
var optionalPathCheckResult = FilePermissionHelper.EnsureDirectories(GetPathsToCheck(pathsToCheck, PermissionCheckRequirement.Optional), out optionalFailedPaths);
|
||||
var requiredPathCheckResult = FilePermissionHelper.EnsureDirectories(
|
||||
GetPathsToCheck(pathsToCheck, PermissionCheckRequirement.Required), out var requiredFailedPaths);
|
||||
var optionalPathCheckResult = FilePermissionHelper.EnsureDirectories(
|
||||
GetPathsToCheck(pathsToCheck, PermissionCheckRequirement.Optional), out var optionalFailedPaths);
|
||||
|
||||
//now check the special folders
|
||||
var requiredPathCheckResult2 = FilePermissionHelper.EnsureDirectories(
|
||||
GetPathsToCheck(pathsToCheckWithRestarts, PermissionCheckRequirement.Required), out var requiredFailedPaths2, writeCausesRestart:true);
|
||||
var optionalPathCheckResult2 = FilePermissionHelper.EnsureDirectories(
|
||||
GetPathsToCheck(pathsToCheckWithRestarts, PermissionCheckRequirement.Optional), out var optionalFailedPaths2, writeCausesRestart: true);
|
||||
|
||||
requiredPathCheckResult = requiredPathCheckResult && requiredPathCheckResult2;
|
||||
optionalPathCheckResult = optionalPathCheckResult && optionalPathCheckResult2;
|
||||
|
||||
//combine the paths
|
||||
requiredFailedPaths = requiredFailedPaths.Concat(requiredFailedPaths2).ToList();
|
||||
optionalFailedPaths = requiredFailedPaths.Concat(optionalFailedPaths2).ToList();
|
||||
|
||||
return GetStatus(requiredPathCheckResult, requiredFailedPaths, optionalPathCheckResult, optionalFailedPaths, PermissionCheckFor.Folder);
|
||||
}
|
||||
|
||||
@@ -50,17 +50,10 @@ namespace Umbraco.Web.HealthCheck.NotificationMethods
|
||||
|
||||
var subject = _textService.Localize("healthcheck/scheduledHealthCheckEmailSubject");
|
||||
|
||||
using (var client = new SmtpClient())
|
||||
var mailSender = new EmailSender();
|
||||
using (var mailMessage = CreateMailMessage(subject, message))
|
||||
{
|
||||
if (client.DeliveryMethod == SmtpDeliveryMethod.Network)
|
||||
{
|
||||
await client.SendMailAsync(mailMessage);
|
||||
}
|
||||
else
|
||||
{
|
||||
client.Send(mailMessage);
|
||||
}
|
||||
await mailSender.SendAsync(mailMessage);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace Umbraco.Web.HealthCheck.NotificationMethods
|
||||
{
|
||||
public interface IHealthCheckNotificationMethod
|
||||
{
|
||||
bool Enabled { get; }
|
||||
Task SendAsync(HealthCheckResults results, CancellationToken token);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user