Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java =================================================================== diff -u -rbef0532f6eae24daa6c5452e211da0ae91dfb1a5 -r18ee903dfc2e0bd139881af731e60abcb0aac27c --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision bef0532f6eae24daa6c5452e211da0ae91dfb1a5) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision 18ee903dfc2e0bd139881af731e60abcb0aac27c) @@ -359,5 +359,23 @@ * @throws IOException */ public String getWorkspace(Integer userID) throws IOException; + + /** + * Retrieves the list of organisations in which the user has the specified role. + * in WDDX format + * @param userID + * @param role + * @return + */ + public String getOrganisationsByUserRole(Integer userID, String role) throws IOException; + + /** + * Returns the users within the Organisation with organisationID + * and role in WDDX format + * @param organisationID + * @param role + * @return + */ + public String getUsersFromOrganisationByRole(Integer organisationID, String role) throws IOException; } Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java =================================================================== diff -u -rbef0532f6eae24daa6c5452e211da0ae91dfb1a5 -r18ee903dfc2e0bd139881af731e60abcb0aac27c --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision bef0532f6eae24daa6c5452e211da0ae91dfb1a5) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 18ee903dfc2e0bd139881af731e60abcb0aac27c) @@ -49,6 +49,7 @@ import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO; +import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; @@ -61,6 +62,7 @@ import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceDAO; import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO; import org.lamsfoundation.lams.usermanagement.dto.UserAccessFoldersDTO; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.usermanagement.exception.UserException; import org.lamsfoundation.lams.usermanagement.exception.WorkspaceFolderException; import org.lamsfoundation.lams.util.wddx.FlashMessage; @@ -91,6 +93,7 @@ protected IAuthoringService authoringService; protected IRepositoryService repositoryService; + protected IUserManagementService userMgmtService; /** * @param workspaceFolderContentDAO The workspaceFolderContentDAO to set. @@ -142,6 +145,11 @@ public void setUserOrganisationDAO(IUserOrganisationDAO userOrganisationDAO) { this.userOrganisationDAO = userOrganisationDAO; } + + public void setUserMgmtService(IUserManagementService userMgmtService) { + this.userMgmtService = userMgmtService; + } + /** * (non-Javadoc) * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#deleteFolder(java.lang.Integer, java.lang.Integer) @@ -988,4 +996,37 @@ return flashMessage.serializeMessage(); } + /** + * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#getOrganisationsByUserRole(Integer, String) + */ + public String getOrganisationsByUserRole(Integer userID, String role) throws IOException + { + User user = userDAO.getUserById(userID); + Vector organisations = new Vector(); + if (user!=null) { + + Iterator iterator = userMgmtService.getOrganisationsForUserByRole(user, role).iterator(); + + while (iterator.hasNext()) { + Organisation organisation = (Organisation) iterator.next(); + organisations.add(organisation.getOrganisationDTO()); + } + flashMessage = new FlashMessage( + "getOrganisationsByUserRole", organisations); + } else + flashMessage = FlashMessage.getNoSuchUserExists( + "getOrganisationsByUserRole", userID); + + return flashMessage.serializeMessage(); + + } + + /** + * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#getUsersFromOrganisationByRole(Integer, String) + */ + public String getUsersFromOrganisationByRole(Integer organisationID, String role) throws IOException + { + return userMgmtService.getUsersFromOrganisationByRole(organisationID, role); + } + } Index: lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java =================================================================== diff -u -r21a33fb6733cdcebeed7541364aab90cc4dcd602 -r18ee903dfc2e0bd139881af731e60abcb0aac27c --- lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision 21a33fb6733cdcebeed7541364aab90cc4dcd602) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision 18ee903dfc2e0bd139881af731e60abcb0aac27c) @@ -459,6 +459,29 @@ String wddxPacket = workspaceManagementService.deleteContentWithVersion(uuID,versionID,folderContentID); return outputPacket(mapping, request, response, wddxPacket, "details"); } + + + public ActionForward getOrganisationsByUserRole(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response)throws Exception{ + Integer userID = new Integer(WebUtil.readIntParam(request,"userID")); + String role = WebUtil.readStrParam(request, "role"); + IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService(); + String wddxPacket = workspaceManagementService.getOrganisationsByUserRole(userID, role); + return outputPacket(mapping, request, response, wddxPacket, "details"); + } + + public ActionForward getUsersFromOrganisationByRole(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response)throws Exception{ + Integer organisationID = new Integer(WebUtil.readIntParam(request,"organisationID")); + String role = WebUtil.readStrParam(request, "role"); + IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService(); + String wddxPacket = workspaceManagementService.getUsersFromOrganisationByRole(organisationID, role); + return outputPacket(mapping, request, response, wddxPacket, "details"); + } }