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 7270ae5bbf..8cbed8a0d0 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 @@ -269,51 +269,37 @@ /** formats the display model used to display the member to the model used to save the member */ formatMemberPostData: function (displayModel, action) { - //this is basically the same as for media but we need to explicitly add the username,email, password to the save model + //this is basically the same as for media but we need to explicitly add the username, email, password to the save model var saveModel = this.formatMediaPostData(displayModel, action); saveModel.key = displayModel.key; - var genericTab = _.find(displayModel.tabs, function (item) { - return item.id === 0; - }); - - //map the member login, email, password and groups - var propLogin = _.find(genericTab.properties, function (item) { - return item.alias === "_umb_login"; - }); - var propEmail = _.find(genericTab.properties, function (item) { - return item.alias === "_umb_email"; - }); - var propPass = _.find(genericTab.properties, function (item) { - return item.alias === "_umb_password"; - }); - var propGroups = _.find(genericTab.properties, function (item) { - return item.alias === "_umb_membergroup"; - }); - saveModel.email = propEmail.value.trim(); - saveModel.username = propLogin.value.trim(); - - saveModel.password = this.formatChangePasswordModel(propPass.value); - - var selectedGroups = []; - for (var n in propGroups.value) { - if (propGroups.value[n] === true) { - selectedGroups.push(n); + // Map membership properties + _.each(displayModel.membershipProperties, prop => { + switch (prop.alias) { + case '_umb_login': + saveModel.username = prop.value.trim(); + break; + case '_umb_email': + saveModel.email = prop.value.trim(); + break; + case '_umb_password': + saveModel.password = this.formatChangePasswordModel(prop.value); + break; + case '_umb_membergroup': + saveModel.memberGroups = _.keys(_.pick(prop.value, value => value === true)); + break; } - } - saveModel.memberGroups = selectedGroups; + }); - //turn the dictionary into an array of pairs + // Map custom member provider properties var memberProviderPropAliases = _.pairs(displayModel.fieldConfig); - _.each(displayModel.tabs, function (tab) { - _.each(tab.properties, function (prop) { - var foundAlias = _.find(memberProviderPropAliases, function (item) { - return prop.alias === item[1]; - }); + _.each(displayModel.tabs, tab => { + _.each(tab.properties, prop => { + var foundAlias = _.find(memberProviderPropAliases, item => prop.alias === item[1]); if (foundAlias) { - //we know the current property matches an alias, now we need to determine which membership provider property it was for + // we know the current property matches an alias, now we need to determine which membership provider property it was for // by looking at the key switch (foundAlias[0]) { case "umbracoMemberLockedOut": @@ -330,8 +316,6 @@ }); }); - - return saveModel; }, diff --git a/src/Umbraco.Web.UI.Client/src/views/components/member/umb-member-node-info.html b/src/Umbraco.Web.UI.Client/src/views/components/member/umb-member-node-info.html index 5162caf13c..7811c7728c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/member/umb-member-node-info.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/member/umb-member-node-info.html @@ -1,18 +1,6 @@