[V15] Align reserved property endpoints code and usage (#18319)

* Remove/enhance duplicate code

contentTypeEditing Services now use the IReservedFieldNamesService to determine invalid property alias values.

* Let Modelsbuilder define it's reserved property alias names

* Update, add tests + fix false positives

* Removed config check to register modelsbuilder required reserved properties

* Updated unittests regarding removed check of modelsbuilder mode

* Fix merge

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
This commit is contained in:
Kenn Jacobsen
2025-03-06 09:16:00 +01:00
committed by GitHub
parent 52bb32205b
commit 7b422598f9
18 changed files with 244 additions and 71 deletions

View File

@@ -1,8 +1,6 @@
using Microsoft.Extensions.Options;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Core.Services;
using Umbraco.Extensions;
namespace Umbraco.Cms.Infrastructure.PublishedCache;
@@ -22,33 +20,9 @@ internal class ReservedFieldNamesService : IReservedFieldNamesService
_mediaPropertySettings = mediaPropertySettings.Value;
}
public ISet<string> GetDocumentReservedFieldNames()
{
var reservedProperties = typeof(IPublishedContent).GetPublicProperties().Select(x => x.Name).ToHashSet();
var reservedMethods = typeof(IPublishedContent).GetPublicMethods().Select(x => x.Name).ToHashSet();
reservedProperties.UnionWith(reservedMethods);
reservedProperties.UnionWith(_contentPropertySettings.ReservedFieldNames);
public ISet<string> GetDocumentReservedFieldNames() => _contentPropertySettings.ReservedFieldNames;
return reservedProperties;
}
public ISet<string> GetMediaReservedFieldNames() => _mediaPropertySettings.ReservedFieldNames;
public ISet<string> GetMediaReservedFieldNames()
{
var reservedProperties = typeof(IPublishedContent).GetPublicProperties().Select(x => x.Name).ToHashSet();
var reservedMethods = typeof(IPublishedContent).GetPublicMethods().Select(x => x.Name).ToHashSet();
reservedProperties.UnionWith(reservedMethods);
reservedProperties.UnionWith(_mediaPropertySettings.ReservedFieldNames);
return reservedProperties;
}
public ISet<string> GetMemberReservedFieldNames()
{
var reservedProperties = typeof(IPublishedMember).GetPublicProperties().Select(x => x.Name).ToHashSet();
var reservedMethods = typeof(IPublishedMember).GetPublicMethods().Select(x => x.Name).ToHashSet();
reservedProperties.UnionWith(reservedMethods);
reservedProperties.UnionWith(_memberPropertySettings.ReservedFieldNames);
return reservedProperties;
}
public ISet<string> GetMemberReservedFieldNames() => _memberPropertySettings.ReservedFieldNames;
}