diff --git a/src/Umbraco.Core/Services/MemberService.cs b/src/Umbraco.Core/Services/MemberService.cs index 22684f36ba..494a8bc376 100644 --- a/src/Umbraco.Core/Services/MemberService.cs +++ b/src/Umbraco.Core/Services/MemberService.cs @@ -986,7 +986,11 @@ namespace Umbraco.Core.Services /// Optional parameter to raise events. /// Default is True otherwise set to False to not raise events public void Save(IMember entity, bool raiseEvents = true) - { + { + //trimming username and email to make sure we have no trailing space + entity.Username = entity.Username.Trim(); + entity.Email = entity.Email.Trim(); + using (var uow = UowProvider.GetUnitOfWork()) { var saveEventArgs = new SaveEventArgs(entity); diff --git a/src/Umbraco.Web.UI.Client/src/common/services/umbdataformatter.service.js b/src/Umbraco.Web.UI.Client/src/common/services/umbdataformatter.service.js index 5fc2416927..2edd8e709a 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/umbdataformatter.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/umbdataformatter.service.js @@ -243,7 +243,7 @@ return item.alias === "_umb_membergroup"; }); saveModel.email = propEmail.value; - saveModel.username = propLogin.value; + saveModel.username = propLogin.value.trim(); saveModel.password = this.formatChangePasswordModel(propPass.value); diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs index 888d097bf4..5e246c0d59 100644 --- a/src/Umbraco.Web/Editors/MemberController.cs +++ b/src/Umbraco.Web/Editors/MemberController.cs @@ -393,7 +393,7 @@ namespace Umbraco.Web.Editors UpdateName(contentItem); //map the custom properties - this will already be set for new entities in our member binder - contentItem.PersistedContent.Email = contentItem.Email; + contentItem.PersistedContent.Email = contentItem.Email; contentItem.PersistedContent.Username = contentItem.Username; //use the base method to map the rest of the properties