diff --git a/src/Umbraco.Core/Models/PublishedContent/IPublishedContent.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedContent.cs
index 1c0d39a8b8..e8bee90d7c 100644
--- a/src/Umbraco.Core/Models/PublishedContent/IPublishedContent.cs
+++ b/src/Umbraco.Core/Models/PublishedContent/IPublishedContent.cs
@@ -63,6 +63,7 @@ namespace Umbraco.Core.Models.PublishedContent
///
/// Gets the name of the user who created the content item.
///
+ [Obsolete("Use CreatorName(IUserService) extension instead")]
string CreatorName { get; }
///
@@ -78,6 +79,7 @@ namespace Umbraco.Core.Models.PublishedContent
///
/// Gets the name of the user who last updated the content item.
///
+ [Obsolete("Use WriterName(IUserService) extension instead")]
string WriterName { get; }
///
diff --git a/src/Umbraco.Web/Macros/PublishedContentHashtableConverter.cs b/src/Umbraco.Web/Macros/PublishedContentHashtableConverter.cs
index 41f0e2fb65..3bbc4a793b 100644
--- a/src/Umbraco.Web/Macros/PublishedContentHashtableConverter.cs
+++ b/src/Umbraco.Web/Macros/PublishedContentHashtableConverter.cs
@@ -248,8 +248,10 @@ namespace Umbraco.Web.Macros
public string UrlSegment => throw new NotImplementedException();
+ [Obsolete("Use WriterName(IUserService) extension instead")]
public string WriterName { get; }
+ [Obsolete("Use CreatorName(IUserService) extension instead")]
public string CreatorName { get; }
public int WriterId => _inner.WriterId;
diff --git a/src/Umbraco.Web/Models/PublishedContentBase.cs b/src/Umbraco.Web/Models/PublishedContentBase.cs
index 148bab11c0..032a1a6fda 100644
--- a/src/Umbraco.Web/Models/PublishedContentBase.cs
+++ b/src/Umbraco.Web/Models/PublishedContentBase.cs
@@ -54,6 +54,8 @@ namespace Umbraco.Web.Models
public abstract int CreatorId { get; }
///
+ [Obsolete("Use CreatorName(IUserService) extension instead")]
+
public abstract string CreatorName { get; }
///
@@ -63,6 +65,8 @@ namespace Umbraco.Web.Models
public abstract int WriterId { get; }
///
+ [Obsolete("Use WriterName(IUserService) extension instead")]
+
public abstract string WriterName { get; }
///
diff --git a/src/Umbraco.Web/PublishedCache/NuCache/PublishedContent.cs b/src/Umbraco.Web/PublishedCache/NuCache/PublishedContent.cs
index 3c3c3ac54f..c84d49d685 100644
--- a/src/Umbraco.Web/PublishedCache/NuCache/PublishedContent.cs
+++ b/src/Umbraco.Web/PublishedCache/NuCache/PublishedContent.cs
@@ -163,6 +163,8 @@ namespace Umbraco.Web.PublishedCache.NuCache
public override int CreatorId => _contentNode.CreatorId;
///
+ [Obsolete("Use CreatorName(IUserService) extension instead")]
+
public override string CreatorName => GetProfileNameById(_contentNode.CreatorId);
///
@@ -172,6 +174,8 @@ namespace Umbraco.Web.PublishedCache.NuCache
public override int WriterId => ContentData.WriterId;
///
+ [Obsolete("Use WriterName(IUserService) extension instead")]
+
public override string WriterName => GetProfileNameById(ContentData.WriterId);
///
diff --git a/src/Umbraco.Web/PublishedCache/PublishedMember.cs b/src/Umbraco.Web/PublishedCache/PublishedMember.cs
index 6e9ec61c62..30e5882ea8 100644
--- a/src/Umbraco.Web/PublishedCache/PublishedMember.cs
+++ b/src/Umbraco.Web/PublishedCache/PublishedMember.cs
@@ -140,9 +140,13 @@ namespace Umbraco.Web.PublishedCache
public override string UrlSegment => throw new NotSupportedException();
// TODO: ARGH! need to fix this - this is not good because it uses ApplicationContext.Current
+ [Obsolete("Use WriterName(IUserService) extension instead")]
+
public override string WriterName => _member.GetCreatorProfile().Name;
// TODO: ARGH! need to fix this - this is not good because it uses ApplicationContext.Current
+ [Obsolete("Use CreatorName(IUserService) extension instead")]
+
public override string CreatorName => _member.GetCreatorProfile().Name;
public override int WriterId => _member.CreatorId;
diff --git a/src/Umbraco.Web/PublishedContentExtensions.cs b/src/Umbraco.Web/PublishedContentExtensions.cs
index 061422859c..4e9735b0bd 100644
--- a/src/Umbraco.Web/PublishedContentExtensions.cs
+++ b/src/Umbraco.Web/PublishedContentExtensions.cs
@@ -28,6 +28,20 @@ namespace Umbraco.Web
private static UmbracoContext UmbracoContext => Current.UmbracoContext;
private static ISiteDomainHelper SiteDomainHelper => Current.Factory.GetInstance();
+ #region Creator/Writer Names
+
+ public static string CreatorName(this IPublishedContent content, IUserService userService)
+ {
+ return userService.GetProfileById(content.CreatorId)?.Name;
+ }
+
+ public static string WriterName(this IPublishedContent content, IUserService userService)
+ {
+ return userService.GetProfileById(content.WriterId)?.Name;
+ }
+
+ #endregion
+
#region IsComposedOf
///
@@ -1004,8 +1018,8 @@ namespace Umbraco.Web
{ "NodeTypeAlias", n.ContentType.Alias },
{ "CreateDate", n.CreateDate },
{ "UpdateDate", n.UpdateDate },
- { "CreatorName", n.CreatorName },
- { "WriterName", n.WriterName },
+ { "CreatorName", n.CreatorName(services.UserService) },
+ { "WriterName", n.WriterName(services.UserService) },
{ "Url", n.Url() }
};