=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/DeleteCurrentUserAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/DeleteCurrentUserAction.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/DeleteCurrentUserAction.java 2010-04-21 10:42:20 +0000 @@ -0,0 +1,152 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.hisp.dhis.user.action; + + +import com.opensymphony.xwork2.Action; +import java.util.Collection; +import org.hisp.dhis.i18n.I18n; +import org.hisp.dhis.security.PasswordManager; +import org.hisp.dhis.user.CurrentUserService; +import org.hisp.dhis.user.User; +import org.hisp.dhis.user.UserCredentials; +import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.UserSetting; +import org.hisp.dhis.user.UserStore; + +/** + * + * @author Administrator + */ +public class DeleteCurrentUserAction implements Action +{ + + private UserStore userStore; + + public void setUserStore( UserStore userStore ) + { + this.userStore = userStore; + } + + private CurrentUserService currentUserService; + + public void setCurrentUserService( CurrentUserService currentUserService ) + { + this.currentUserService = currentUserService; + } + + private PasswordManager passwordManager; + + public void setPasswordManager( PasswordManager passwordManager ) + { + this.passwordManager = passwordManager; + } + + private UserService userService; + + public void setUserService( UserService userService ) + { + this.userService = userService; + } + + + private Integer id; + + public void setId( Integer id ) + { + this.id = id; + } + + private I18n i18n; + + public void setI18n( I18n i18n ) + { + this.i18n = i18n; + } + + private String message; + + public String getMessage() + { + return message; + } + + private String username; + + public void setUsername( String username ) + { + this.username = username; + } + + public String getUsername() + { + return username; + } + + private String oldPassword; + + public String getOldPassword() + { + return oldPassword; + } + + public void setOldPassword( String oldPassword ) + { + this.oldPassword = oldPassword; + } + + @Override + public String execute() throws Exception + { + message = " "; + User user = userStore.getUser( currentUserService.getCurrentUser().getId() ); + + UserCredentials userCredentials = userStore.getUserCredentials( user ); + + username = userCredentials.getUsername(); + String oldPasswordFromDB = userCredentials.getPassword(); + + if ( oldPassword == null ) + { + return INPUT; + } + + oldPassword = oldPassword.trim(); + + if ( oldPassword.length() == 0 ) + { + return INPUT; + } + //System.out.println( "oldPasswordFromDB = " + oldPasswordFromDB + " encoded old password = " + passwordManager.encodePassword( userCredentials.getUsername(), oldPassword ) ); + String oldEncodedPassword = passwordManager.encodePassword( userCredentials.getUsername(), oldPassword ) ; + if ( !oldEncodedPassword.equals( oldPasswordFromDB ) ) + { + message = i18n.getString( "wrong_password" ); + return INPUT; + } + else + { + Collection userSettings = userStore.getAllUserSettings( user ); + + for ( UserSetting userSetting : userSettings ) + { + userStore.deleteUserSetting( userSetting ); + } + + if ( userService.isLastSuperUser( userCredentials ) ) + { + message = i18n.getString( "can_not_remove_last_super_user" ); + return INPUT; + } else + { + userStore.deleteUserCredentials( userStore.getUserCredentials( user ) ); + userStore.deleteUser( user ); + } + + + return "logout"; + } + } +} === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java 2010-04-12 21:23:33 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java 2010-04-21 10:42:20 +0000 @@ -38,6 +38,7 @@ import org.hisp.dhis.user.comparator.UsernameComparator; import com.opensymphony.xwork2.Action; +import org.hisp.dhis.user.CurrentUserService; /** * @author Torgeir Lorange Ostby @@ -57,6 +58,12 @@ this.userStore = userStore; } + private CurrentUserService currentUserService; + + public void setCurrentUserService( CurrentUserService currentUserService ) + { + this.currentUserService = currentUserService; + } // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -68,6 +75,14 @@ return userCredentialsList; } + private String currentUserName; + + public String getCurrentUserName() + { + return currentUserName; + } + + // ------------------------------------------------------------------------- // Action implemantation // ------------------------------------------------------------------------- @@ -89,7 +104,10 @@ } Collections.sort( userCredentialsList, new UsernameComparator() ); + User currentUser = userStore.getUser( currentUserService.getCurrentUser().getId() ); + UserCredentials userCredentials = userStore.getUserCredentials( currentUser ); + currentUserName = userCredentials.getUsername(); return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/META-INF/dhis/beans.xml 2010-03-31 03:07:10 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/META-INF/dhis/beans.xml 2010-04-21 10:42:20 +0000 @@ -25,6 +25,24 @@ + + + + + + + + + + + + + + + + @@ -50,6 +68,9 @@ + + + /dhis-web-commons/ajax/jsonResponseError.vm F_USER_DELETE + /main.vm @@ -151,6 +152,18 @@ /dhis-web-maintenance-user/responseInput.vm plainTextError + + + + + /main.vm + /dhis-web-maintenance-user/deleteCurrentUser.vm + /dhis-web-maintenance-user/menu.vm + /dhis-web-commons/ajax/jsonResponseSuccess.vm + /dhis-web-commons-security/logout.action + ../dhis-web-commons/util/validate/jquery.validate.js,../dhis-web-commons/util/jquery.metadata.js + ,../dhis-web-commons/util/validate/messages_locale.js,../dhis-web-commons/util/validate/additional-methods.js + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/allUser.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/allUser.vm 2010-02-25 03:10:07 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/allUser.vm 2010-04-21 10:42:20 +0000 @@ -33,9 +33,15 @@ $!encoder.htmlEncode( $userCredentials.user.organisationUnit.name ) $i18n.getString( - - $i18n.getString( - + + #if($currentUserName != $userCredentials.username) + + $i18n.getString( + + #else + + + #end $i18n.getString( #end === added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/deleteCurrentUser.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/deleteCurrentUser.vm 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/deleteCurrentUser.vm 2010-04-21 10:42:20 +0000 @@ -0,0 +1,34 @@ + +

$i18n.getString( "delete_current_user" )

+ +
+ + + + + + + + + + + + + + + + + + + + + +
 
+ +
+ +
+ +$message + + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/menu.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/menu.vm 2010-03-31 03:07:10 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/menu.vm 2010-04-21 10:42:20 +0000 @@ -3,4 +3,5 @@
  • $i18n.getString( "user" ) 
  • $i18n.getString( "user_by_orgunit" ) 
  • $i18n.getString( "user_role" ) 
  • +
  • Delete Current User
  • \ No newline at end of file