=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/useraccount/updateUserAccountForm.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/useraccount/updateUserAccountForm.js 2014-01-17 03:48:57 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/useraccount/updateUserAccountForm.js 2015-11-08 18:59:48 +0000 @@ -14,10 +14,6 @@ validation2( 'updateUserinforForm', updateUser, { 'rules' : rules } ); - - var oldPassword = byId( 'oldPassword' ); - oldPassword.select(); - oldPassword.focus(); } ); function updateUser() === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/useraccount/updateUserAccountForm.vm' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/useraccount/updateUserAccountForm.vm 2015-11-08 16:58:48 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/useraccount/updateUserAccountForm.vm 2015-11-08 18:59:48 +0000 @@ -25,18 +25,18 @@ #if( !$userCredentials.externalAuth ) - + - #end + #end === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/useraccount/action/UpdateUserAccountAction.java' --- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/useraccount/action/UpdateUserAccountAction.java 2015-11-08 16:58:48 +0000 +++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/useraccount/action/UpdateUserAccountAction.java 2015-11-08 18:59:48 +0000 @@ -32,6 +32,7 @@ import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.security.PasswordManager; import org.hisp.dhis.user.User; +import org.hisp.dhis.user.UserCredentials; import org.hisp.dhis.user.UserService; import com.opensymphony.xwork2.Action; @@ -147,9 +148,15 @@ rawPassword = StringUtils.trimToNull( rawPassword ); User user = userService.getUser( id ); + UserCredentials credentials = user.getUserCredentials(); + String currentPassword = userService.getUserCredentials( user ).getPassword(); - - if ( !passwordManager.matches( oldPassword, currentPassword ) ) + + // --------------------------------------------------------------------- + // Deny update if user has local authentication and password is wrong + // --------------------------------------------------------------------- + + if ( !credentials.isExternalAuth() && !passwordManager.matches( oldPassword, currentPassword ) ) { message = i18n.getString( "wrong_password" ); return INPUT; @@ -166,7 +173,7 @@ userService.encodeAndSetPassword( user, rawPassword ); - userService.updateUserCredentials( user.getUserCredentials() ); + userService.updateUserCredentials( credentials ); userService.updateUser( user ); message = i18n.getString( "update_user_success" );