Log language ISO codes instead of language names (#19259)
This commit is contained in:
@@ -1108,14 +1108,8 @@ public class ContentService : RepositoryService, IContentService
|
||||
|
||||
if (culturesChanging != null)
|
||||
{
|
||||
IEnumerable<string>? languages = _languageRepository.GetMany()?
|
||||
.Where(x => culturesChanging.InvariantContains(x.IsoCode))
|
||||
.Select(x => x.CultureName);
|
||||
if (languages is not null)
|
||||
{
|
||||
var langs = string.Join(", ", languages);
|
||||
Audit(AuditType.SaveVariant, userId.Value, content.Id, $"Saved languages: {langs}", langs);
|
||||
}
|
||||
var langs = GetLanguageDetailsForAuditEntry(culturesChanging);
|
||||
Audit(AuditType.SaveVariant, userId.Value, content.Id, $"Saved languages: {langs}", langs);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1625,9 +1619,7 @@ public class ContentService : RepositoryService, IContentService
|
||||
if (culturesUnpublishing != null)
|
||||
{
|
||||
// This will mean that that we unpublished a mandatory culture or we unpublished the last culture.
|
||||
var langs = string.Join(", ", allLangs
|
||||
.Where(x => culturesUnpublishing.InvariantContains(x.IsoCode))
|
||||
.Select(x => x.CultureName));
|
||||
var langs = GetLanguageDetailsForAuditEntry(allLangs, culturesUnpublishing);
|
||||
Audit(AuditType.UnpublishVariant, userId, content.Id, $"Unpublished languages: {langs}", langs);
|
||||
|
||||
if (publishResult == null)
|
||||
@@ -1707,9 +1699,7 @@ public class ContentService : RepositoryService, IContentService
|
||||
case PublishResultType.SuccessPublishCulture:
|
||||
if (culturesPublishing != null)
|
||||
{
|
||||
var langs = string.Join(", ", allLangs
|
||||
.Where(x => culturesPublishing.InvariantContains(x.IsoCode))
|
||||
.Select(x => x.CultureName));
|
||||
var langs = GetLanguageDetailsForAuditEntry(allLangs, culturesPublishing);
|
||||
Audit(AuditType.PublishVariant, userId, content.Id, $"Published languages: {langs}", langs);
|
||||
}
|
||||
|
||||
@@ -1717,9 +1707,7 @@ public class ContentService : RepositoryService, IContentService
|
||||
case PublishResultType.SuccessUnpublishCulture:
|
||||
if (culturesUnpublishing != null)
|
||||
{
|
||||
var langs = string.Join(", ", allLangs
|
||||
.Where(x => culturesUnpublishing.InvariantContains(x.IsoCode))
|
||||
.Select(x => x.CultureName));
|
||||
var langs = GetLanguageDetailsForAuditEntry(allLangs, culturesUnpublishing);
|
||||
Audit(AuditType.UnpublishVariant, userId, content.Id, $"Unpublished languages: {langs}", langs);
|
||||
}
|
||||
|
||||
@@ -1741,9 +1729,7 @@ public class ContentService : RepositoryService, IContentService
|
||||
{
|
||||
if (culturesChanging != null)
|
||||
{
|
||||
var langs = string.Join(", ", allLangs
|
||||
.Where(x => culturesChanging.InvariantContains(x.IsoCode))
|
||||
.Select(x => x.CultureName));
|
||||
var langs = GetLanguageDetailsForAuditEntry(allLangs, culturesChanging);
|
||||
Audit(AuditType.SaveVariant, userId, content.Id, $"Saved languages: {langs}", langs);
|
||||
}
|
||||
else
|
||||
@@ -3098,6 +3084,17 @@ public class ContentService : RepositoryService, IContentService
|
||||
private void Audit(AuditType type, int userId, int objectId, string? message = null, string? parameters = null) =>
|
||||
_auditRepository.Save(new AuditItem(objectId, type, userId, UmbracoObjectTypes.Document.GetName(), message, parameters));
|
||||
|
||||
private string GetLanguageDetailsForAuditEntry(IEnumerable<string> affectedCultures)
|
||||
=> GetLanguageDetailsForAuditEntry(_languageRepository.GetMany(), affectedCultures);
|
||||
|
||||
private static string GetLanguageDetailsForAuditEntry(IEnumerable<ILanguage> languages, IEnumerable<string> affectedCultures)
|
||||
{
|
||||
IEnumerable<string> languageIsoCodes = languages
|
||||
.Where(x => affectedCultures.InvariantContains(x.IsoCode))
|
||||
.Select(x => x.IsoCode);
|
||||
return string.Join(", ", languageIsoCodes);
|
||||
}
|
||||
|
||||
private static bool IsDefaultCulture(IReadOnlyCollection<ILanguage>? langs, string culture) =>
|
||||
langs?.Any(x => x.IsDefault && x.IsoCode.InvariantEquals(culture)) ?? false;
|
||||
|
||||
|
||||
@@ -59,8 +59,6 @@ internal sealed class ContentServiceTests : UmbracoIntegrationTestWithContent
|
||||
|
||||
private IRelationService RelationService => GetRequiredService<IRelationService>();
|
||||
|
||||
private ILocalizedTextService TextService => GetRequiredService<ILocalizedTextService>();
|
||||
|
||||
private ITagService TagService => GetRequiredService<ITagService>();
|
||||
|
||||
private IPublicAccessService PublicAccessService => GetRequiredService<IPublicAccessService>();
|
||||
@@ -738,8 +736,7 @@ internal sealed class ContentServiceTests : UmbracoIntegrationTestWithContent
|
||||
[Test]
|
||||
public void Can_Unpublish_Content_Variation()
|
||||
{
|
||||
var content = CreateEnglishAndFrenchDocument(out var langUk, out var langFr,
|
||||
out var contentType);
|
||||
var content = CreateEnglishAndFrenchDocument(out var langUk, out var langFr, out var contentType);
|
||||
|
||||
var saved = ContentService.Save(content);
|
||||
var published = ContentService.Publish(content, new[] { langFr.IsoCode, langUk.IsoCode });
|
||||
@@ -1032,7 +1029,7 @@ internal sealed class ContentServiceTests : UmbracoIntegrationTestWithContent
|
||||
|
||||
// audit log will only show that french was published
|
||||
var lastLog = AuditService.GetLogs(content.Id).Last();
|
||||
Assert.AreEqual("Published languages: French (France)", lastLog.Comment);
|
||||
Assert.AreEqual("Published languages: fr-FR", lastLog.Comment);
|
||||
|
||||
// re-get
|
||||
content = ContentService.GetById(content.Id);
|
||||
@@ -1042,7 +1039,7 @@ internal sealed class ContentServiceTests : UmbracoIntegrationTestWithContent
|
||||
|
||||
// audit log will only show that english was published
|
||||
lastLog = AuditService.GetLogs(content.Id).Last();
|
||||
Assert.AreEqual("Published languages: English (United Kingdom)", lastLog.Comment);
|
||||
Assert.AreEqual("Published languages: en-GB", lastLog.Comment);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -1079,7 +1076,7 @@ internal sealed class ContentServiceTests : UmbracoIntegrationTestWithContent
|
||||
|
||||
// audit log will only show that french was unpublished
|
||||
var lastLog = AuditService.GetLogs(content.Id).Last();
|
||||
Assert.AreEqual("Unpublished languages: French (France)", lastLog.Comment);
|
||||
Assert.AreEqual("Unpublished languages: fr-FR", lastLog.Comment);
|
||||
|
||||
// re-get
|
||||
content = ContentService.GetById(content.Id);
|
||||
@@ -1088,7 +1085,7 @@ internal sealed class ContentServiceTests : UmbracoIntegrationTestWithContent
|
||||
|
||||
// audit log will only show that english was published
|
||||
var logs = AuditService.GetLogs(content.Id).ToList();
|
||||
Assert.AreEqual("Unpublished languages: English (United Kingdom)", logs[^2].Comment);
|
||||
Assert.AreEqual("Unpublished languages: en-GB", logs[^2].Comment);
|
||||
Assert.AreEqual("Unpublished (mandatory language unpublished)", logs[^1].Comment);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user