V9/feature/log telemetry level changing (#12299)

* Add logging to SetConsentLevel

* Obsolete old ctor and change logging to email

* Fixed a few issues with MetricsConsentService logging

* Fixed null check

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
This commit is contained in:
Nikolaj Geisle
2022-04-26 08:50:50 +02:00
committed by GitHub
parent 7474eaa0d8
commit 7483a706ac

View File

@@ -1,5 +1,9 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Security;
using Umbraco.Cms.Web.Common.DependencyInjection;
namespace Umbraco.Cms.Core.Services
{
@@ -8,10 +12,27 @@ namespace Umbraco.Cms.Core.Services
internal const string Key = "UmbracoAnalyticsLevel";
private readonly IKeyValueService _keyValueService;
private readonly ILogger<MetricsConsentService> _logger;
private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor;
// Scheduled for removal in V12
[Obsolete("Please use the constructor that takes and ILogger and IBackOfficeSecurity instead")]
public MetricsConsentService(IKeyValueService keyValueService)
: this(
keyValueService,
StaticServiceProvider.Instance.GetRequiredService<ILogger<MetricsConsentService>>(),
StaticServiceProvider.Instance.GetRequiredService<IBackOfficeSecurityAccessor>())
{
}
public MetricsConsentService(
IKeyValueService keyValueService,
ILogger<MetricsConsentService> logger,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor)
{
_keyValueService = keyValueService;
_logger = logger;
_backOfficeSecurityAccessor = backOfficeSecurityAccessor;
}
public TelemetryLevel GetConsentLevel()
@@ -28,6 +49,8 @@ namespace Umbraco.Cms.Core.Services
public void SetConsentLevel(TelemetryLevel telemetryLevel)
{
var currentUser = _backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser;
_logger.LogInformation("Telemetry level set to {telemetryLevel} by {username}", telemetryLevel, currentUser?.Username);
_keyValueService.SetValue(Key, telemetryLevel.ToString());
}
}