Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java,v diff -u -r1.32 -r1.33 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java 9 Aug 2006 07:11:18 -0000 1.32 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java 29 Aug 2006 08:26:51 -0000 1.33 @@ -292,4 +292,10 @@ public List getUserManageBeans(Integer orgId); + /** Remove a user from the system completely. Only able to be done if they don't have any + * related learning designs, etc. + * @param userId + */ + public void removeUser(Integer userId); + } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java,v diff -u -r1.50 -r1.51 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 29 Aug 2006 04:34:45 -0000 1.50 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 29 Aug 2006 08:26:51 -0000 1.51 @@ -46,12 +46,14 @@ import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; import org.lamsfoundation.lams.usermanagement.Workspace; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; +import org.lamsfoundation.lams.usermanagement.WorkspaceWorkspaceFolder; import org.lamsfoundation.lams.usermanagement.dto.OrganisationDTO; import org.lamsfoundation.lams.usermanagement.dto.OrganisationDTOFactory; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.dto.UserManageBean; import org.lamsfoundation.lams.util.HashUtil; import org.lamsfoundation.lams.util.MessageService; +import org.lamsfoundation.lams.util.WebUtil; /** *

@@ -504,4 +506,51 @@ return userManageBeans; } -} + /** Remove a user from the system completely. Only able to be done if they don't have any + * related learning designs, etc. + * @param userId + */ + public void removeUser(Integer userId) { + + User user = (User)findById(User.class,userId); + if ( user != null ) { + + // check that the user doesn't have any contents - move that logic from the action to a + // method call in the service. throw an exception if they do have contents + + // write out an entry in the audit log. + + Workspace workspace = user.getWorkspace(); + Set wwfs = workspace != null ? workspace.getWorkspaceWorkspaceFolders() : null; + + Set foldersToDelete = new HashSet(); + if ( wwfs != null ) { + Iterator iter = wwfs.iterator(); + while (iter.hasNext()) { + WorkspaceWorkspaceFolder wwf = (WorkspaceWorkspaceFolder)iter.next(); + foldersToDelete.add(wwf.getWorkspaceFolder()); + + log.debug("deleting wkspc_wkspc_folder: "+wwf.getId()); + delete(wwf); + } + } + + for ( WorkspaceFolder wf : foldersToDelete ) { + log.debug("deleting wkspc_folder: "+wf.getName()); + delete(wf); + } + + if ( workspace != null ) { + log.debug("deleting workspace: "+workspace.getName()); + delete(workspace); + } + + log.debug("deleting user "+user.getLogin()); + delete(user); + + } else { + log.error("Requested delete of a user who does not exist. User ID "+userId); + } + } + +} \ No newline at end of file