From e0eadf2cf5f4548443c60da43df3f0416e470cdb Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Mon, 12 Oct 2020 17:10:22 +0200 Subject: [PATCH] Creating a "System" content type breaks Umbraco (#9005) --- .../BackOffice/ContentTypeModelValidatorBase.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs index 15ca2cca24..4051bc3bd5 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using Umbraco.Core; @@ -25,6 +26,13 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice //don't do anything if we're not enabled if (!_config.Enable) yield break; + //list of reserved/disallowed aliases for content/media/member types - more can be added as the need arises + var reservedModelAliases = new[] { "system" }; + if(reservedModelAliases.Contains(model.Alias, StringComparer.OrdinalIgnoreCase)) + { + yield return new ValidationResult($"The model alias {model.Alias} is a reserved term and cannot be used", new[] { "Alias" }); + } + var properties = model.Groups.SelectMany(x => x.Properties) .Where(x => x.Inherited == false) .ToArray();