The user change password dashboard now works and adheres to the membership provider rules.

This commit is contained in:
Shannon
2013-10-17 14:46:16 +11:00
parent 2a7844d031
commit fd6046ebb6
9 changed files with 105 additions and 53 deletions

View File

@@ -105,7 +105,12 @@ function ChangePasswordDashboardController($scope, xmlhelper, $log, userResource
$scope.changePassword = function() {
if (formHelper.submitForm({ scope: $scope })) {
userResource.changePassword($scope.changePasswordModel.value).then(function() {
userResource.changePassword($scope.changePasswordModel.value).then(function(data) {
//if the password has been reset, then update our model
if (data.value) {
$scope.changePasswordModel.value.generatedPassword = data.value;
}
formHelper.resetForm({ scope: $scope, notifications: data.notifications });

View File

@@ -76,9 +76,15 @@ angular.module("umbraco").controller("Umbraco.PropertyEditors.ChangePasswordCont
//listen for the saved event, when that occurs we'll
//change to changing = false;
$scope.$on("formSubmitted", function () {
$scope.changing = false;
if ($scope.model.config.disableToggle === false) {
$scope.changing = false;
}
resetModel();
});
$scope.$on("formSubmitting", function() {
//if there was a previously generated password displaying, clear it
$scope.model.value.generatedPassword = null;
});
$scope.showReset = function() {
return $scope.model.config.hasPassword && $scope.model.config.enableReset;

View File

@@ -1,53 +1,53 @@
<div ng-controller="Umbraco.PropertyEditors.ChangePasswordController" ng-switch="changing">
<div ng-switch-when="false">
<div class="alert alert-success text-center" ng-hide="!model.value.generatedPassword">
<small>Password has been reset to:</small>
<br/>
<strong>{{model.value.generatedPassword}}</strong>
</div>
<a href="" ng-click="doChange()" class="btn btn-small">Change password</a>
<div ng-controller="Umbraco.PropertyEditors.ChangePasswordController">
<div class="alert alert-success text-center" ng-hide="!model.value.generatedPassword">
<small>Password has been reset to:</small>
<br/>
<strong>{{model.value.generatedPassword}}</strong>
</div>
<div ng-switch-when="true">
<div ng-switch="changing">
<div ng-switch-when="false">
<a href="" ng-click="doChange()" class="btn btn-small">Change password</a>
</div>
<div ng-switch-when="true">
<umb-control-group alias="resetPassword" label="Reset password?" ng-show="$parent.showReset()">
<input type="checkbox" ng-model="$parent.model.value.reset"
id="Checkbox1"
name="resetPassword"
val-server="resetPassword"/>
<span class="help-inline" val-msg-for="resetPassword" val-toggle-msg="valServer"></span>
</umb-control-group>
<umb-control-group alias="resetPassword" label="Reset password?" ng-show="$parent.showReset()">
<input type="checkbox" ng-model="$parent.model.value.reset"
id="Checkbox1"
name="resetPassword"
val-server="resetPassword"/>
<span class="help-inline" val-msg-for="resetPassword" val-toggle-msg="valServer"></span>
</umb-control-group>
<!-- we need to show the old pass field when the provider cannot retreive the password -->
<umb-control-group alias="oldPassword" label="Old password" ng-show="$parent.showOldPass()">
<input type="text" name="oldPassword" ng-model="$parent.model.value.oldPassword"
class="input-large umb-textstring textstring"
ng-required="$parent.oldPassRequired()"
val-server="oldPassword" />
<span class="help-inline" val-msg-for="oldPassword" val-toggle-msg="required">Required</span>
<span class="help-inline" val-msg-for="oldPassword" val-toggle-msg="valServer"></span>
</umb-control-group>
<!-- we need to show the old pass field when the provider cannot retreive the password -->
<umb-control-group alias="oldPassword" label="Old password" ng-show="$parent.showOldPass()">
<input type="text" name="oldPassword" ng-model="$parent.model.value.oldPassword"
class="input-large umb-textstring textstring"
ng-required="$parent.oldPassRequired()"
val-server="oldPassword" />
<span class="help-inline" val-msg-for="oldPassword" val-toggle-msg="required">Required</span>
<span class="help-inline" val-msg-for="oldPassword" val-toggle-msg="valServer"></span>
</umb-control-group>
<umb-control-group alias="password" label="New password" ng-show="$parent.showNewPass()">
<input type="text" name="password" ng-model="$parent.model.value.newPassword"
class="input-large umb-textstring textstring"
ng-required="!$parent.model.value.reset"
val-server="value"
ng-minlength="{{$parent.model.config.minPasswordLength}}" />
<span class="help-inline" val-msg-for="password" val-toggle-msg="required">Required</span>
<span class="help-inline" val-msg-for="password" val-toggle-msg="minlength">Minimum {{$parent.model.config.minPasswordLength}} characters</span>
<span class="help-inline" val-msg-for="password" val-toggle-msg="valServer"></span>
</umb-control-group>
<umb-control-group alias="password" label="New password" ng-show="$parent.showNewPass()">
<input type="text" name="password" ng-model="$parent.model.value.newPassword"
class="input-large umb-textstring textstring"
ng-required="!$parent.model.value.reset"
val-server="value"
ng-minlength="{{$parent.model.config.minPasswordLength}}" />
<span class="help-inline" val-msg-for="password" val-toggle-msg="required">Required</span>
<span class="help-inline" val-msg-for="password" val-toggle-msg="minlength">Minimum {{$parent.model.config.minPasswordLength}} characters</span>
<span class="help-inline" val-msg-for="password" val-toggle-msg="valServer"></span>
</umb-control-group>
<umb-control-group alias="confirmpassword" label="Confirm password" ng-show="$parent.showConfirmPass()">
<input type="text" name="confirmpassword" ng-model="$parent.model.confirm"
class="input-large umb-textstring textstring"
val-compare="password" />
<umb-control-group alias="confirmpassword" label="Confirm password" ng-show="$parent.showConfirmPass()">
<input type="text" name="confirmpassword" ng-model="$parent.model.confirm"
class="input-large umb-textstring textstring"
val-compare="password" />
<span class="help-inline" val-msg-for="confirmpassword" val-toggle-msg="valCompare">Passwords must match</span>
</umb-control-group>
<span class="help-inline" val-msg-for="confirmpassword" val-toggle-msg="valCompare">Passwords must match</span>
</umb-control-group>
<a href="" ng-click="cancelChange()" ng-show="showCancelBtn()" class="btn btn-small">Cancel</a>
</div>
<a href="" ng-click="cancelChange()" ng-show="showCancelBtn()" class="btn btn-small">Cancel</a>
</div>
</div>
</div>