diff --git a/src/Umbraco.Core/Models/MemberType.cs b/src/Umbraco.Core/Models/MemberType.cs index e324b78447..aea28e20c5 100644 --- a/src/Umbraco.Core/Models/MemberType.cs +++ b/src/Umbraco.Core/Models/MemberType.cs @@ -44,7 +44,9 @@ namespace Umbraco.Core.Models SetPropertyValueAndDetectChanges(o => { - _alias = value == "_umbracoSystemDefaultProtectType" ? value : value.ToSafeAlias(); + _alias = value == "_umbracoSystemDefaultProtectType" + ? value + : (value == null ? string.Empty : value.ToSafeAlias() ); return _alias; }, _alias, AliasSelector); } diff --git a/src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs index 9875943f33..ea95936d32 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs @@ -166,8 +166,10 @@ namespace Umbraco.Core.Persistence.Repositories protected override void PersistNewItem(IMemberType entity) { - ((MemberType)entity).AddingEntity(); + ValidateAlias(entity); + ((MemberType)entity).AddingEntity(); + //By Convention we add 9 stnd PropertyTypes to an Umbraco MemberType entity.AddPropertyGroup(Constants.Conventions.Member.StandardPropertiesGroupName); var standardPropertyTypes = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs index 5f00e5b4b7..eba4a9cdc1 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System; +using System.Linq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Models; @@ -70,6 +71,21 @@ namespace Umbraco.Tests.Persistence.Repositories } } + [Test] + public void Cannot_Persist_Member_Type_Without_Alias() + { + var provider = new PetaPocoUnitOfWorkProvider(); + var unitOfWork = provider.GetUnitOfWork(); + using (var repository = CreateRepository(unitOfWork)) + { + var memberType = MockedContentTypes.CreateSimpleMemberType(); + memberType.Alias = null; + repository.AddOrUpdate(memberType); + + Assert.Throws(unitOfWork.Commit); + } + } + [Test] public void Can_Get_All_Member_Types() {