Content Types: Prevent creation of document type with an alias that case insensitively matches an existing alias (closes #20467) (#20471)
Prevent creation of document type with an alias that case insensitively matches an existing alias.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Models.ContentTypeEditing;
|
||||
using Umbraco.Cms.Core.Services.OperationStatus;
|
||||
using Umbraco.Cms.Core.Strings;
|
||||
@@ -407,7 +407,7 @@ internal abstract class ContentTypeEditingServiceBase<TContentType, TContentType
|
||||
}
|
||||
|
||||
// This this method gets aliases across documents, members, and media, so it covers it all
|
||||
private bool ContentTypeAliasIsInUse(string alias) => _contentTypeService.GetAllContentTypeAliases().Contains(alias);
|
||||
private bool ContentTypeAliasIsInUse(string alias) => _contentTypeService.GetAllContentTypeAliases().InvariantContains(alias);
|
||||
|
||||
private bool ContentTypeAliasCanBeUsedFor(string alias, Guid key)
|
||||
{
|
||||
|
||||
@@ -861,14 +861,15 @@ internal sealed partial class ContentTypeEditingServiceTests
|
||||
Assert.AreEqual(ContentTypeOperationStatus.InvalidAlias, result.Status);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Cannot_Use_Existing_Alias()
|
||||
[TestCase("test")] // Matches alias case sensitively.
|
||||
[TestCase("Test")] // Matches alias case insensitively.
|
||||
public async Task Cannot_Use_Existing_Alias(string newAlias)
|
||||
{
|
||||
var createModel = ContentTypeCreateModel("Test", "test");
|
||||
var result = await ContentTypeEditingService.CreateAsync(createModel, Constants.Security.SuperUserKey);
|
||||
Assert.IsTrue(result.Success);
|
||||
|
||||
createModel = ContentTypeCreateModel("Test 2", "test");
|
||||
createModel = ContentTypeCreateModel("Test 2", newAlias);
|
||||
result = await ContentTypeEditingService.CreateAsync(createModel, Constants.Security.SuperUserKey);
|
||||
Assert.IsFalse(result.Success);
|
||||
Assert.AreEqual(ContentTypeOperationStatus.DuplicateAlias, result.Status);
|
||||
|
||||
Reference in New Issue
Block a user