diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs index a424324b3c..565c0fbfa2 100644 --- a/src/Umbraco.Web/Editors/MemberController.cs +++ b/src/Umbraco.Web/Editors/MemberController.cs @@ -89,6 +89,11 @@ namespace Umbraco.Web.Editors UpdateName(contentItem); + //map the custom properties + contentItem.PersistedContent.Email = contentItem.Email; + //TODO: If we allow changing the alias then we'll need to change URLs, etc... in the editor, would prefer to use + // a unique id but then need to figure out how to handle that with custom membership providers - waiting on feedback from morten. + MapPropertyValues(contentItem); //We need to manually check the validation results here because: diff --git a/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs b/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs index ee02c4e076..be399b88a6 100644 --- a/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs +++ b/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs @@ -3,6 +3,8 @@ using AutoMapper; using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Web.Models.ContentEditing; +using Umbraco.Web.WebApi.Filters; +using System.Linq; namespace Umbraco.Web.WebApi.Binders { @@ -23,9 +25,17 @@ namespace Umbraco.Web.WebApi.Binders protected override IMember GetExisting(MemberSave model) { - return ApplicationContext.Services.MemberService.GetByUsername(model.Username); - } + //TODO: We're going to remove the built-in member properties from this editor - not sure if we should be persisting them elsewhere ? + var toRemove = Constants.Conventions.Member.StandardPropertyTypeStubs.Select(x => x.Value.Alias).ToArray(); + var member = ApplicationContext.Services.MemberService.GetByUsername(model.Username); + foreach (var remove in toRemove) + { + member.Properties.Remove(remove); + } + return member; + } + protected override IMember CreateNew(MemberSave model) { var contentType = ApplicationContext.Services.ContentTypeService.GetMemberType(model.ContentTypeAlias);