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");
+ }
}