From 3a813d2d77e5b97ac4f4ac7e3049d4acf9c5e531 Mon Sep 17 00:00:00 2001 From: Stephan Date: Tue, 28 May 2019 10:26:30 +0200 Subject: [PATCH] Cleanup unknown user for audit events --- src/Umbraco.Core/Compose/AuditEventsComponent.cs | 6 ++++-- src/Umbraco.Core/Constants-Security.cs | 7 ++++++- .../Compose/BackOfficeUserAuditEventsComponent.cs | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Core/Compose/AuditEventsComponent.cs b/src/Umbraco.Core/Compose/AuditEventsComponent.cs index e76c13b0fe..453fd6314a 100644 --- a/src/Umbraco.Core/Compose/AuditEventsComponent.cs +++ b/src/Umbraco.Core/Compose/AuditEventsComponent.cs @@ -44,20 +44,22 @@ namespace Umbraco.Core.Compose public void Terminate() { } + internal static IUser UnknownUser => new User { Id = Constants.Security.UnknownUserId, Name = Constants.Security.UnknownUserName, Email = "" }; + private IUser CurrentPerformingUser { get { var identity = Thread.CurrentPrincipal?.GetUmbracoIdentity(); var user = identity == null ? null : _userService.GetUserById(Convert.ToInt32(identity.Id)); - return user ?? new User { Id = 0, Name = "SYSTEM", Email = "" }; + return user ?? UnknownUser; } } private IUser GetPerformingUser(int userId) { var found = userId >= 0 ? _userService.GetUserById(userId) : null; - return found ?? new User {Id = 0, Name = "SYSTEM", Email = ""}; + return found ?? UnknownUser; } private string PerformingIp diff --git a/src/Umbraco.Core/Constants-Security.cs b/src/Umbraco.Core/Constants-Security.cs index 80f18eb2e0..27d6716000 100644 --- a/src/Umbraco.Core/Constants-Security.cs +++ b/src/Umbraco.Core/Constants-Security.cs @@ -15,13 +15,18 @@ namespace Umbraco.Core public const int SuperUserId = -1; /// - /// The id for the 'unknown' user + /// The id for the 'unknown' user. /// /// /// This is a user row that exists in the DB only for referential integrity but the user is never returned from any of the services /// public const int UnknownUserId = 0; + /// + /// The name of the 'unknown' user. + /// + public const string UnknownUserName = "SYTEM"; + public const string AdminGroupAlias = "admin"; public const string SensitiveDataGroupAlias = "sensitiveData"; public const string TranslatorGroupAlias = "translator"; diff --git a/src/Umbraco.Web/Compose/BackOfficeUserAuditEventsComponent.cs b/src/Umbraco.Web/Compose/BackOfficeUserAuditEventsComponent.cs index 9bb1889b68..4244d575af 100644 --- a/src/Umbraco.Web/Compose/BackOfficeUserAuditEventsComponent.cs +++ b/src/Umbraco.Web/Compose/BackOfficeUserAuditEventsComponent.cs @@ -1,5 +1,6 @@ using System; using Umbraco.Core; +using Umbraco.Core.Compose; using Umbraco.Core.Composing; using Umbraco.Core.Models.Membership; using Umbraco.Core.Services; @@ -39,7 +40,7 @@ namespace Umbraco.Web.Compose private IUser GetPerformingUser(int userId) { var found = userId >= 0 ? _userService.GetUserById(userId) : null; - return found ?? new User { Id = 0, Name = "SYSTEM", Email = "" }; + return found ?? AuditEventsComponent.UnknownUser; } private static string FormatEmail(IMembershipUser user)