Fixes up some more password changing quirks

This commit is contained in:
Shannon
2017-09-08 13:43:38 +10:00
parent 1d5348763d
commit c39e1175fd
3 changed files with 31 additions and 11 deletions

View File

@@ -5,7 +5,7 @@
* *
* *
**/ **/
function currentUserResource($q, $http, umbRequestHelper) { function currentUserResource($q, $http, umbRequestHelper, umbDataFormatter) {
//the factory object returned //the factory object returned
return { return {
@@ -38,8 +38,11 @@ function currentUserResource($q, $http, umbRequestHelper) {
*/ */
changePassword: function (changePasswordArgs) { changePassword: function (changePasswordArgs) {
changePasswordArgs = _.omit(changePasswordArgs, "confirm"); changePasswordArgs = umbDataFormatter.formatChangePasswordModel(changePasswordArgs);
if (!changePasswordArgs) {
throw 'No password data to change';
}
return umbRequestHelper.resourcePromise( return umbRequestHelper.resourcePromise(
$http.post( $http.post(
umbRequestHelper.getApiUrl( umbRequestHelper.getApiUrl(

View File

@@ -7,8 +7,30 @@
* @description A helper object used to format/transform JSON Umbraco data, mostly used for persisting data to the server * @description A helper object used to format/transform JSON Umbraco data, mostly used for persisting data to the server
**/ **/
function umbDataFormatter() { function umbDataFormatter() {
return { return {
formatChangePasswordModel: function(model) {
if (!model) {
return null;
}
var trimmed = _.omit(model, ["confirm", "generatedPassword"])
//ensure that the pass value is null if all child properties are null
var allNull = true;
var vals = _.values(trimmed);
for (var k = 0; k < vals.length; k++) {
if (vals[k] !== null && vals[k] !== undefined) {
allNull = false;
}
}
if (allNull) {
return null;
}
return trimmed;
},
formatContentTypePostData: function (displayModel, action) { formatContentTypePostData: function (displayModel, action) {
//create the save model from the display model //create the save model from the display model
@@ -82,7 +104,7 @@
//create the save model from the display model //create the save model from the display model
var saveModel = _.pick(displayModel, 'id', 'parentId', 'name', 'username', 'culture', 'email', 'startContentIds', 'startMediaIds', 'userGroups', 'message', 'changePassword'); var saveModel = _.pick(displayModel, 'id', 'parentId', 'name', 'username', 'culture', 'email', 'startContentIds', 'startMediaIds', 'userGroups', 'message', 'changePassword');
saveModel.changePassword = _.omit(saveModel.changePassword, "confirm"); saveModel.changePassword = this.formatChangePasswordModel(saveModel.changePassword);
//make sure the userGroups are just a string array //make sure the userGroups are just a string array
var currGroups = saveModel.userGroups; var currGroups = saveModel.userGroups;
@@ -222,7 +244,8 @@
}); });
saveModel.email = propEmail.value; saveModel.email = propEmail.value;
saveModel.username = propLogin.value; saveModel.username = propLogin.value;
saveModel.password = _.omit(propPass.value, "confirm");
saveModel.password = this.formatChangePasswordModel(propPass.value);
var selectedGroups = []; var selectedGroups = [];
for (var n in propGroups.value) { for (var n in propGroups.value) {

View File

@@ -67,10 +67,4 @@
</div> </div>
</div> </div>
<pre>
{{config | json}}
</pre>
<pre>
{{passwordValues | json}}
</pre>
</div> </div>