Index: lams_admin/src/java/org/lamsfoundation/lams/admin/util/ExcelUserImportFileParser.java =================================================================== diff -u -rde1940e60766f8901436c6ab567c692685d5b35c -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_admin/src/java/org/lamsfoundation/lams/admin/util/ExcelUserImportFileParser.java (.../ExcelUserImportFileParser.java) (revision de1940e60766f8901436c6ab567c692685d5b35c) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/util/ExcelUserImportFileParser.java (.../ExcelUserImportFileParser.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -195,7 +195,6 @@ { if(!existingUsersOnly){ user.setCreateDate(new Date()); - user.setBaseOrganisation(service.getBaseOrganisation(org)); service.createUser(user); } UserOrganisation userOrg = new UserOrganisation(); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java =================================================================== diff -u -rde1940e60766f8901436c6ab567c692685d5b35c -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java (.../OrganisationAction.java) (revision de1940e60766f8901436c6ab567c692685d5b35c) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java (.../OrganisationAction.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -122,10 +122,10 @@ org.setParentOrganisation(parentOrg); org.setCreateDate(new Date()); OrganisationType orgType; - if(parentOrg.getOrganisationType().getName().equals(OrganisationType.ROOT)){ - orgType = service.getOrganisationTypeByName(OrganisationType.BASE); + if(parentOrg.getOrganisationType().getName().equals(OrganisationType.ROOT_DESCRIPTION)){ + orgType = service.getOrganisationTypeByName(OrganisationType.COURSE_DESCRIPTION); }else{ - orgType = service.getOrganisationTypeByName(OrganisationType.SUB); + orgType = service.getOrganisationTypeByName(OrganisationType.CLASS_DESCRIPTION); } org.setOrganisationType(orgType); service.saveOrUpdateOrganisation(org); Index: lams_build/lib/lams/lams-central.jar =================================================================== diff -u -r5d19dfc0c1e8659f45b53d5e78d3789aee034e1e -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 Binary files differ Index: lams_build/lib/lams/lams-monitoring.jar =================================================================== diff -u -r3f60ecf7d3a92231a1089191ae75c68bc66e9595 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 Binary files differ Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rd3d4a8947839c9c06ee0b2e3e38834915e5fe033 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java =================================================================== diff -u -rfc041430be42d809aaaf81add61f2d3182490aef -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision fc041430be42d809aaaf81add61f2d3182490aef) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -233,7 +233,7 @@ if ( user == null ) { log.error("admin: User missing from session. "); return mapping.findForward("error"); - } else if (isUserInRole(user.getUserID(), orgId, Role.STAFF)) { + } else if (isUserInRole(user.getUserID(), orgId, Role.STAFF) || isUserInRole(user.getUserID(), orgId, Role.TEACHER)) { log.debug("user is staff"); String serverUrl = Configuration Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java =================================================================== diff -u -r4d45967cbfe2e48757cf6a4a1b2f9ba49576427f -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision 4d45967cbfe2e48757cf6a4a1b2f9ba49576427f) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -24,10 +24,12 @@ package org.lamsfoundation.lams.workspace.service; import java.io.IOException; +import java.util.List; import java.util.Vector; import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; import org.lamsfoundation.lams.usermanagement.exception.UserException; import org.lamsfoundation.lams.usermanagement.exception.WorkspaceFolderException; @@ -321,15 +323,15 @@ * @param roles * @return */ - public String getOrganisationsByUserRole(Integer userID, String[] roles) throws IOException; + public String getOrganisationsByUserRole(Integer userID, List roleNames) throws IOException; /** * Returns the users within the Organisation with organisationID - * and role in WDDX format + * and role. * @param organisationID * @param role * @return */ - public String getUsersFromOrganisationByRole(Integer organisationID, String role) throws IOException; + public Vector getUsersFromOrganisationByRole(Integer organisationID, String role) throws IOException; } Fisheye: Tag 1454b2fd27486dd14b1ccf172b96df61a0b0d355 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/workspace/service/OrganisationDTOFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java =================================================================== diff -u -r8336bd6c253b6e67ea538e4e99c767988786da6a -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 8336bd6c253b6e67ea538e4e99c767988786da6a) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -31,7 +31,6 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import java.util.HashSet; import java.util.SortedSet; import java.util.Vector; @@ -53,7 +52,6 @@ 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; @@ -65,7 +63,7 @@ import org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationDAO; import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceDAO; import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO; -import org.lamsfoundation.lams.usermanagement.dto.OrganisationDTO; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; import org.lamsfoundation.lams.usermanagement.exception.UserException; import org.lamsfoundation.lams.usermanagement.exception.WorkspaceFolderException; @@ -457,8 +455,6 @@ else permission = WorkspaceFolder.OWNER_ACCESS; } - else if (isParentOrganisationFolder(workspaceFolder,user)) - permission = WorkspaceFolder.MEMBERSHIP_ACCESS; else if(user.hasMemberAccess(workspaceFolder)) permission = WorkspaceFolder.MEMBERSHIP_ACCESS; else @@ -484,22 +480,6 @@ return false; } - /** - * This method checks if the given workspaceFolder is the - * workspaceFolder of the parentOrganisation of which the user is a member. - * - * @param workspaceFolder - * @param user - * @return true/false - */ - private boolean isParentOrganisationFolder(WorkspaceFolder workspaceFolder, User user){ - Integer workspaceFolderID = workspaceFolder != null ? workspaceFolder.getWorkspaceFolderId() : null; - if ( workspaceFolderID != null ) { - WorkspaceFolder parentOrganisationFolder = user.getBaseOrganisation().getWorkspace().getRootFolder(); - return (parentOrganisationFolder!=null && workspaceFolderID.equals(parentOrganisationFolder.getWorkspaceFolderId()) ); - } - return false; - } private Vector getFolderContentDTO(List designs, Integer permissions,Vector folderContent){ Iterator iterator = designs.iterator(); @@ -1173,18 +1153,24 @@ Iterator memberships = userMemberships.iterator(); while (memberships.hasNext()) { UserOrganisation member = (UserOrganisation) memberships.next(); - // Get a list of roles that the user has in this organisation - Set roles = member.getUserOrganisationRoles(); - /*Check if the user has write access, which is available - * only if the user has an AUTHOR, TEACHER or STAFF role. If - * he has acess add that folder to the list. - */ - if (hasWriteAccess(roles)) { - WorkspaceFolder orgFolder = member.getOrganisation().getWorkspace().getRootFolder(); - Integer permission = getPermissions(orgFolder,user); - if ( !permission.equals(WorkspaceFolder.NO_ACCESS) ) { - folders.add(new FolderContentDTO(orgFolder,permission)); + // Only courses have folders - classes don't! + Workspace workspace = member.getOrganisation().getWorkspace(); + + if ( workspace != null ) { + WorkspaceFolder orgFolder = workspace.getRootFolder(); + if ( orgFolder != null ) { + + // Check if the user has write access, which is available + // only if the user has an AUTHOR, TEACHER or STAFF role. If + // user has access add that folder to the list. + Set roles = member.getUserOrganisationRoles(); + if (hasWriteAccess(roles)) { + Integer permission = getPermissions(orgFolder,user); + if ( !permission.equals(WorkspaceFolder.NO_ACCESS) ) { + folders.add(new FolderContentDTO(orgFolder,permission)); + } + } } } } @@ -1208,11 +1194,15 @@ if (user != null) { //add the user's own folder to the list WorkspaceFolder privateFolder = user.getWorkspace().getRootFolder(); - Integer permissions = getPermissions(privateFolder,user); - return new FolderContentDTO(privateFolder, permissions); + if ( privateFolder != null ) { + Integer permissions = getPermissions(privateFolder,user); + return new FolderContentDTO(privateFolder, permissions); + } else { + log.warn("getUserWorkspaceFolder: User "+userID+" does not have a root folder. Returning no folders."); + } } else { - log.warn("getAccessibleWorkspaceFolders: User "+userID+" does not exist. Returning no folders."); + log.warn("getUserWorkspaceFolder: User "+userID+" does not exist. Returning no folders."); } return null; @@ -1400,19 +1390,13 @@ /** * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#getOrganisationsByUserRole(Integer, String) */ - public String getOrganisationsByUserRole(Integer userID, String[] roles) throws IOException + public String getOrganisationsByUserRole(Integer userID, List roleNames) throws IOException { User user = userDAO.getUserById(userID); - Set organisations = new HashSet(); if (user!=null) { - for(int i=0; i getUsersFromOrganisationByRole(Integer organisationID, String roleName) { return userMgmtService.getUsersFromOrganisationByRole(organisationID, roleName); } Index: lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java =================================================================== diff -u -r4df4002dac1d95a5439836cb86b2ff524f3a96e7 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision 4df4002dac1d95a5439836cb86b2ff524f3a96e7) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.Hashtable; import java.util.Vector; @@ -37,6 +38,7 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; @@ -502,13 +504,20 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception{ + Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID)); + String roles_str = WebUtil.readStrParam(request, "roles"); String[] roles = roles_str.split(ROLE_DELIMITER); + ArrayList roleList = new ArrayList(); + for ( String role: roles ) { + roleList.add(role); + } + String wddxPacket = null; try { IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService(); - wddxPacket = workspaceManagementService.getOrganisationsByUserRole(userID, roles); + wddxPacket = workspaceManagementService.getOrganisationsByUserRole(userID, roleList); } catch (Exception e) { log.error("getOrganisationsByUserRole: Exception occured. userID "+userID+" role "+roles.toString(), e); FlashMessage flashMessage = FlashMessage.getExceptionOccured(IWorkspaceManagementService.MSG_KEY_ORG_BY_ROLE, e.getMessage()); @@ -524,15 +533,17 @@ Integer organisationID = new Integer(WebUtil.readIntParam(request,"organisationID")); String role = WebUtil.readStrParam(request, "role"); - String wddxPacket = null; + FlashMessage flashMessage = null; try { IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService(); - wddxPacket = workspaceManagementService.getUsersFromOrganisationByRole(organisationID, role); + Vector users = workspaceManagementService.getUsersFromOrganisationByRole(organisationID, role); + flashMessage = new FlashMessage("getUsersFromOrganisationByRole",users); + } catch (Exception e) { log.error("getUsersFromOrganisationByRole: Exception occured. organisationID "+organisationID+" role "+role, e); - FlashMessage flashMessage = FlashMessage.getExceptionOccured(IWorkspaceManagementService.MSG_KEY_USER_BY_ROLE, e.getMessage()); - wddxPacket = flashMessage.serializeMessage(); + flashMessage = FlashMessage.getExceptionOccured(IWorkspaceManagementService.MSG_KEY_USER_BY_ROLE, e.getMessage()); } + String wddxPacket = flashMessage.serializeMessage(); return returnWDDXPacket(wddxPacket, response); } Index: lams_central/test/java/org/lamsfoundation/lams/workspace/service/TestWorkspaceManagement.java =================================================================== diff -u -rac080bcbd7d03cc64ea0b43091472ddbf23b30fd -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_central/test/java/org/lamsfoundation/lams/workspace/service/TestWorkspaceManagement.java (.../TestWorkspaceManagement.java) (revision ac080bcbd7d03cc64ea0b43091472ddbf23b30fd) +++ lams_central/test/java/org/lamsfoundation/lams/workspace/service/TestWorkspaceManagement.java (.../TestWorkspaceManagement.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -24,6 +24,7 @@ package org.lamsfoundation.lams.workspace.service; import java.io.IOException; +import java.util.ArrayList; import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -331,7 +332,10 @@ /** Test the getOrganisationsByUserRoleOneTree call for the mmm user, who has all their orgs in one hierarchy */ public void testGetOrganisationsByUserRoleOneTree() { try { - String packet = workspaceManagementService.getOrganisationsByUserRole(MMM_USER_ID,new String[]{"TEACHER","STAFF"}); + ArrayList list = new ArrayList(); + list.add("TEACHER"); + list.add("STAFF"); + String packet = workspaceManagementService.getOrganisationsByUserRole(MMM_USER_ID,list); System.out.println("getOrganisationsByUserRole: mmm: "+packet); checkContainsOnce(packet, "Macquarie University"); checkContainsOnce(packet, "Macquarie E-Learning Centre Of Excellence"); @@ -353,7 +357,10 @@ /** Test the getOrganisationsByUserRoleOneTree call for the test1 user, whose orgs are spread over two hierarchies */ public void testGetOrganisationsByUserRoleTwoTrees() { try { - String packet = workspaceManagementService.getOrganisationsByUserRole(TEST1_USER_ID,new String[]{"TEACHER","STAFF"}); + ArrayList list = new ArrayList(); + list.add("TEACHER"); + list.add("STAFF"); + String packet = workspaceManagementService.getOrganisationsByUserRole(TEST1_USER_ID,list); System.out.println("getOrganisationsByUserRole: test1: "+packet); checkContainsOnce(packet, "LAMS Project Team"); checkContainsOnce(packet, "Computing Courses"); Index: lams_central/web/includes/javascript/openUrls.js =================================================================== diff -u -r62ffc2985a40f544eb48a69f2ad7f124b19a43fa -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_central/web/includes/javascript/openUrls.js (.../openUrls.js) (revision 62ffc2985a40f544eb48a69f2ad7f124b19a43fa) +++ lams_central/web/includes/javascript/openUrls.js (.../openUrls.js) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -13,9 +13,8 @@ var adminWin = null; var sysadminWin = null; - function openAuthor( ) + function openAuthor( orgId ) { - var orgId = document.forms[0].orgIdForAuthor.value; if(isMac) { authorWin = window.open('home.do?method=author&orgId='+orgId,'aWindow','width=796,height=570,resizable'); @@ -34,9 +33,8 @@ } } - function openStaff( ) + function openStaff( orgId ) { - var orgId = document.forms[0].orgIdForStaff.value; if(isMac) { if(belowMinRes) @@ -63,9 +61,8 @@ } } - function openLearner() + function openLearner( orgId ) { - var orgId = document.forms[0].orgIdForStaff.value; if(isMac) { learnWin = window.open('home.do?method=learner&orgId='+orgId,'lWindow','width=796,height=570,resizable,status=yes'); @@ -83,32 +80,10 @@ } } - function openAdmin() + function openSysadmin( orgId ) { - var orgId = document.forms[0].orgIdForAdmin.value; if(isMac) { - adminWin = window.open('home.do?method=admin&orgId='+orgId,'adWindow','width=796,height=570,resizable,location,menubar,scrollbars,dependent,status,toolbar'); - } - else - { - if(adminWin && adminWin.open && !adminWin.closed ) - { - adminWin.focus(); - } - else - { - adminWin = window.open('home.do?method=admin&orgId='+orgId,'adWindow','width=796,height=570,resizable,location,menubar,scrollbars,dependent,status,toolbar'); - adminWin.focus(); - } - } - } - - function openSysadmin() - { - var orgId = document.forms[0].orgIdForAdmin.value; - if(isMac) - { sysadminWin = window.open('home.do?method=sysadmin&orgId='+orgId,'saWindow','width=796,height=570,resizable,location,menubar,scrollbars,dependent,status,toolbar'); } else Index: lams_central/web/indexContent.jsp =================================================================== diff -u -r62ffc2985a40f544eb48a69f2ad7f124b19a43fa -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_central/web/indexContent.jsp (.../indexContent.jsp) (revision 62ffc2985a40f544eb48a69f2ad7f124b19a43fa) +++ lams_central/web/indexContent.jsp (.../indexContent.jsp) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -1,9 +1,11 @@ <%@ page contentType="text/html; charset=iso-8859-1" language="java" %> -<%@ page import="java.util.List" %> +<%@ page import="java.util.*" %> <%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %> <%@ page import="org.springframework.web.context.WebApplicationContext" %> <%@ page import="org.lamsfoundation.lams.usermanagement.service.UserManagementService" %> -<%@ page import="org.lamsfoundation.lams.usermanagement.*" %> +<%@ page import="org.lamsfoundation.lams.usermanagement.Role" %> +<%@ page import="org.lamsfoundation.lams.usermanagement.User" %> +<%@ page import="org.lamsfoundation.lams.usermanagement.dto.OrganisationDTO" %> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> @@ -50,86 +52,71 @@ - <%List list = service.getOrganisationsForUserByRole(user,Role.SYSADMIN); - if(list.size()>0){%> + + <% ArrayList roleList = new ArrayList(); + roleList.add(Role.SYSADMIN); + OrganisationDTO orgDTO = service.getOrganisationsForUserByRole(user,roleList); + if(orgDTO!=null){%> - - <%}%> - <%list = service.getOrganisationsForUserByRole(user,Role.ADMIN); - if(list.size()>0){%> - - - - + <%orgDTO = service.getOrganisationsForUserByRole(user,null); + if(orgDTO!=null){ + Vector courses = orgDTO.getNodes(); + Iterator courseIter = courses.iterator(); + while ( courseIter.hasNext() ) { + + OrganisationDTO course = (OrganisationDTO)courseIter.next();%> + + + + + + + + <% + Vector classes = course.getNodes(); + Iterator classIter = classes.iterator(); + while ( classIter.hasNext() ) { + OrganisationDTO courseClass = (OrganisationDTO)classIter.next(); %> + + + + + + + <% }%> + <% } %> <%}%> - <%list = service.getOrganisationsForUserByRole(user,Role.STAFF); - if(list.size()>0){%> - - - - - <%}%> - <%list = service.getOrganisationsForUserByRole(user,Role.AUTHOR); - if(list.size()>0){%> - - - - - <%}%> - <%list = service.getOrganisationsForUserByRole(user,Role.LEARNER); - if(list.size()>0){%> - - - - - <%}%>
- + + - -
- - - -
Course: <%=course.getName()%>: + <% Vector roleNames = course.getRoleNames(); + if ( roleNames.contains(Role.AUTHOR) ) {%> + + <% } %> + + <% if ( roleNames.contains(Role.STAFF) || roleNames.contains(Role.TEACHER) ) {%> + + <% } %> + + <% if ( roleNames.contains(Role.LEARNER) ) {%> + + <% } %> +
Class: <%=courseClass.getName()%>: + <% Vector classRoleNames = courseClass.getRoleNames(); + if ( classRoleNames.contains(Role.AUTHOR) ) {%> + + <% } %> + + <% if ( classRoleNames.contains(Role.STAFF) || classRoleNames.contains(Role.TEACHER) ) {%> + + <% } %> + + <% if ( classRoleNames.contains(Role.LEARNER) ) {%> + + <% } %> +
- - - -
- - - -
- - - -
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml =================================================================== diff -u -r42ddbd4c509c956cc9f5328cea8d45d6e593e796 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml (.../Organisation.hbm.xml) (revision 42ddbd4c509c956cc9f5328cea8d45d6e593e796) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml (.../Organisation.hbm.xml) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -168,32 +168,6 @@ - - - - @hibernate.set - lazy="true" - inverse="true" - cascade="none" - - @hibernate.collection-key - column="base_organisation_id" - - @hibernate.collection-one-to-many - class="org.lamsfoundation.lams.usermanagement.User" - - - - - - - - - - @hibernate.many-to-one - not-null="true" - @hibernate.column name="base_organisation_id" - - - - - - - @hibernate.many-to-one - not-null="true" - lazy="false" - @hibernate.column name="def_run_seq_fld_id" - - - - Index: lams_common/db/model/lams_11.clay =================================================================== diff -u -r3f60ecf7d3a92231a1089191ae75c68bc66e9595 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 3f60ecf7d3a92231a1089191ae75c68bc66e9595) +++ lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -1910,19 +1910,6 @@ - - - - - - - - - - - - - @@ -1993,13 +1980,6 @@ - - - - - - - @@ -2040,7 +2020,7 @@ - + @@ -2228,19 +2208,6 @@ - - - - - - - - - - - - - @@ -2262,13 +2229,6 @@ - - - - - - - @@ -4657,8 +4617,8 @@ Unique signature for each version of a tool. <organisation><tool><version> - + Index: lams_common/db/sql/create_lams_11_tables.sql =================================================================== diff -u -r3f60ecf7d3a92231a1089191ae75c68bc66e9595 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 3f60ecf7d3a92231a1089191ae75c68bc66e9595) +++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -161,15 +161,11 @@ CREATE TABLE lams_workspace ( workspace_id BIGINT(20) NOT NULL AUTO_INCREMENT , root_folder_id BIGINT(20) - , def_run_seq_fld_id BIGINT(20) , name VARCHAR(255) , PRIMARY KEY (workspace_id) , INDEX (root_folder_id) , CONSTRAINT FK_lams_workspace_1 FOREIGN KEY (root_folder_id) REFERENCES lams_workspace_folder (workspace_folder_id) ON DELETE NO ACTION ON UPDATE NO ACTION - , INDEX (def_run_seq_fld_id) - , CONSTRAINT FK_wkspce_default_run FOREIGN KEY (def_run_seq_fld_id) - REFERENCES lams_workspace_folder (workspace_folder_id) )TYPE=InnoDB; CREATE TABLE lams_organisation ( @@ -250,7 +246,6 @@ , create_date DATETIME NOT NULL , authentication_method_id BIGINT(20) NOT NULL DEFAULT 0 , workspace_id BIGINT(20) - , base_organisation_id BIGINT(20) NOT NULL DEFAULT 0 , locale_language CHAR(2) NOT NULL DEFAULT 'en' , locale_country CHAR(2) , flash_theme_id BIGINT(20) @@ -263,9 +258,6 @@ , INDEX (workspace_id) , CONSTRAINT FK_lams_user_2 FOREIGN KEY (workspace_id) REFERENCES lams_workspace (workspace_id) ON DELETE NO ACTION ON UPDATE NO ACTION - , INDEX (base_organisation_id) - , CONSTRAINT FK_lams_user_3 FOREIGN KEY (base_organisation_id) - REFERENCES lams_organisation (organisation_id) , INDEX (flash_theme_id) , CONSTRAINT FK_lams_user_4 FOREIGN KEY (flash_theme_id) REFERENCES lams_css_theme_ve (theme_ve_id) ON DELETE NO ACTION ON UPDATE NO ACTION Index: lams_common/db/sql/insert_types_data.sql =================================================================== diff -u -r3f60ecf7d3a92231a1089191ae75c68bc66e9595 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision 3f60ecf7d3a92231a1089191ae75c68bc66e9595) +++ lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -12,8 +12,8 @@ INSERT INTO lams_authentication_method_type VALUES(3, 'LDAP'); INSERT INTO lams_organisation_type VALUES(1, 'ROOT ORGANISATION', 'root all other organisations: controlled by Sysadmin'); -INSERT INTO lams_organisation_type VALUES(2, 'BASE ORGANISATION', 'base organization: represents a real seperate organization sucha s a university '); -INSERT INTO lams_organisation_type VALUES(3, 'SUB-ORGANISATION', 'sub organization of a base organization'); +INSERT INTO lams_organisation_type VALUES(2, 'COURSE ORGANISATION', 'main organisation level - equivalent to an entire course.'); +INSERT INTO lams_organisation_type VALUES(3, 'CLASS', 'runtime organisation level - lessons are run for classes.'); INSERT INTO lams_grouping_type VALUES (1, 'RANDOM_GROUPING'); INSERT INTO lams_grouping_type VALUES (2, 'CHOSEN_GROUPING'); Index: lams_common/db/sql/insert_users.sql =================================================================== diff -u -r4fbc3c1a1f22661f6848a376744357b10c0ed53f -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/db/sql/insert_users.sql (.../insert_users.sql) (revision 4fbc3c1a1f22661f6848a376744357b10c0ed53f) +++ lams_common/db/sql/insert_users.sql (.../insert_users.sql) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -6,230 +6,266 @@ SET FOREIGN_KEY_CHECKS=0; -insert into lams_workspace values(1,null,null,'ROOT'); -insert into lams_workspace values(2,null,null,'Macquarie University'); -insert into lams_workspace values(3,null,null,'MELCOE'); -insert into lams_workspace values(4,null,null,'LAMS'); -insert into lams_workspace values(5,null,null,'MAMS'); -insert into lams_workspace values(6,null,null,'Mary Morgan'); -insert into lams_workspace values(7,null,null,'One Test'); -insert into lams_workspace values(8,null,null,'Two Test'); -insert into lams_workspace values(9,null,null,'Three Test'); -insert into lams_workspace values(10,null,null,'Four Test'); +-- themes and styles +INSERT INTO lams_css_style (style_id, theme_ve_id) VALUES (1,1); +INSERT INTO lams_css_property (property_id, style_id, name, value, style_subset, type) VALUES (1, 1, "borderStyle", "outset", NULL, 1); +INSERT INTO lams_css_property (property_id, style_id, name, value, style_subset, type) VALUES (2, 1, "color", "12452097", "_tf", 3); +INSERT INTO lams_css_property (property_id, style_id, name, value, style_subset, type) VALUES (3, 1, "rollOverColor", "16711680", NULL, 2); -INSERT INTO lams_organisation VALUES (1, 'Root', 'Root Organisation',null,1,NOW(),1); -INSERT INTO lams_organisation VALUES (2, 'Maquarie Uni', 'Macquarie University',1,2,NOW(),2); -INSERT INTO lams_organisation VALUES (3, 'MELCOE', 'Macquarie E-Learning Centre Of Excellence',2,3,NOW(),3); -INSERT INTO lams_organisation VALUES (4, 'LAMS', 'LAMS Project Team',3,3,NOW(),4); -INSERT INTO lams_organisation VALUES (5, 'MAMS', 'MAMS Project Team',3,3,NOW(),5); +INSERT INTO lams_css_theme_ve (theme_ve_id, name, description, parent_id, theme_flag) VALUES (1, "default", "Default Flash style", null, 1); +INSERT INTO lams_css_theme_ve (theme_ve_id, name, description, parent_id, theme_flag) VALUES (2, "ruby", "Incomplete style for Flash", null, 0); +INSERT INTO lams_css_theme_ve (theme_ve_id, name, description, parent_id, theme_flag) VALUES (3, "aqua", "JSP theme", null, 1); -INSERT INTO lams_user_organisation VALUES (1, 1, 1); -INSERT INTO lams_user_organisation VALUES (2, 2, 2); -INSERT INTO lams_user_organisation VALUES (3, 3, 2); -INSERT INTO lams_user_organisation VALUES (4, 4, 2); -INSERT INTO lams_user_organisation VALUES (5, 2, 3); -INSERT INTO lams_user_organisation VALUES (6, 3, 3); +insert into lams_workspace (workspace_id, root_folder_id, name) values(1,1,'ROOT'); +insert into lams_workspace (workspace_id, root_folder_id, name) values(2,2,'Developers Playpen'); +insert into lams_workspace (workspace_id, root_folder_id, name) values(3,3,'MATH111'); +insert into lams_workspace (workspace_id, root_folder_id, name) values(4,4,'Mary Morgan'); +insert into lams_workspace (workspace_id, root_folder_id, name) values(5,5,'One Test'); +insert into lams_workspace (workspace_id, root_folder_id, name) values(6,6,'Two Test'); +insert into lams_workspace (workspace_id, root_folder_id, name) values(7,7,'Three Test'); +insert into lams_workspace (workspace_id, root_folder_id, name) values(8,8,'Four Test'); -INSERT INTO lams_user_organisation VALUES (7, 4, 4); -INSERT INTO lams_user_organisation VALUES (8, 2, 4); -INSERT INTO lams_user_organisation VALUES (9, 3, 4); -INSERT INTO lams_user_organisation VALUES (10,5, 4); +insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) +values(1,null,'ROOT',1,1,'20041223','20041223',1); -INSERT INTO lams_user_organisation VALUES (11,4, 5); -INSERT INTO lams_user_organisation VALUES (12,4, 6); -INSERT INTO lams_user_organisation VALUES (13,4, 7); -INSERT INTO lams_user_organisation VALUES (14,4, 8); +insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) +values(2,1,'Developers Playpen',2,1,'20041223','20041223',1); +insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) +values(3,1,'MATH111',3,1,'20041223','20041223',1); -INSERT INTO lams_user_organisation_role VALUES (1, 1, 1); -INSERT INTO lams_user_organisation_role VALUES (2, 2, 2); -INSERT INTO lams_user_organisation_role VALUES (3, 2, 3); -INSERT INTO lams_user_organisation_role VALUES (4, 2, 4); -INSERT INTO lams_user_organisation_role VALUES (5, 3, 2); -INSERT INTO lams_user_organisation_role VALUES (6, 3, 3); -INSERT INTO lams_user_organisation_role VALUES (7, 3, 4); -INSERT INTO lams_user_organisation_role VALUES (8, 4, 2); -INSERT INTO lams_user_organisation_role VALUES (9, 4, 3); -INSERT INTO lams_user_organisation_role VALUES (10, 4, 4); -INSERT INTO lams_user_organisation_role VALUES (11, 4, 5); -INSERT INTO lams_user_organisation_role VALUES (12, 5, 4); -INSERT INTO lams_user_organisation_role VALUES (13, 5, 5); -INSERT INTO lams_user_organisation_role VALUES (14, 6, 3); +insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) +values(4,null,'Mary Morgan Folder',4,4,'20041223','20041223',1); --- mmm user: author, learner, staff -INSERT INTO lams_user_organisation_role VALUES (15, 7, 3); -INSERT INTO lams_user_organisation_role VALUES (16, 8, 3); -INSERT INTO lams_user_organisation_role VALUES (17, 9, 3); -INSERT INTO lams_user_organisation_role VALUES (18, 10,3); -INSERT INTO lams_user_organisation_role VALUES (19, 7, 4); -INSERT INTO lams_user_organisation_role VALUES (20, 8, 4); -INSERT INTO lams_user_organisation_role VALUES (21, 9, 4); -INSERT INTO lams_user_organisation_role VALUES (22, 10,4); -INSERT INTO lams_user_organisation_role VALUES (23, 7, 5); -INSERT INTO lams_user_organisation_role VALUES (24, 8, 5); -INSERT INTO lams_user_organisation_role VALUES (25, 9, 5); -INSERT INTO lams_user_organisation_role VALUES (26, 10,5); +insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) +values(5,null,'One Test Workspace',5,5,'20041223','20041223',1); --- test users: author, learner, staff -INSERT INTO lams_user_organisation_role VALUES (27, 11, 3); -INSERT INTO lams_user_organisation_role VALUES (28, 11, 4); -INSERT INTO lams_user_organisation_role VALUES (29, 11, 5); -INSERT INTO lams_user_organisation_role VALUES (30, 12, 3); -INSERT INTO lams_user_organisation_role VALUES (31, 12, 4); -INSERT INTO lams_user_organisation_role VALUES (32, 12, 5); -INSERT INTO lams_user_organisation_role VALUES (33, 13, 3); -INSERT INTO lams_user_organisation_role VALUES (34, 13, 4); -INSERT INTO lams_user_organisation_role VALUES (35, 13, 5); -INSERT INTO lams_user_organisation_role VALUES (36, 14, 3); -INSERT INTO lams_user_organisation_role VALUES (37, 14, 4); -INSERT INTO lams_user_organisation_role VALUES (38, 14, 5); +insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) +values(6,null,'Two Test Workspace',6,6,'20041223','20041223',1); --- themes and styles -INSERT INTO lams_css_style (style_id, theme_ve_id) VALUES (1,1); -INSERT INTO lams_css_property (property_id, style_id, name, value, style_subset, type) VALUES (1, 1, "borderStyle", "outset", NULL, 1); -INSERT INTO lams_css_property (property_id, style_id, name, value, style_subset, type) VALUES (2, 1, "color", "12452097", "_tf", 3); -INSERT INTO lams_css_property (property_id, style_id, name, value, style_subset, type) VALUES (3, 1, "rollOverColor", "16711680", NULL, 2); +insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) +values(7,null,'Three Test Workspace',7,7,'20041223','20041223',1); -INSERT INTO lams_css_theme_ve (theme_ve_id, name, description, parent_id, theme_flag) VALUES (1, "default", "Default Flash style", null, 1); -INSERT INTO lams_css_theme_ve (theme_ve_id, name, description, parent_id, theme_flag) VALUES (2, "ruby", "Incomplete style for Flash", null, 0); -INSERT INTO lams_css_theme_ve (theme_ve_id, name, description, parent_id, theme_flag) VALUES (3, "aqua", "JSP theme", null, 1); +insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) +values(8,null,'Four Test Workspace',8,8,'20041223','20041223',1); +INSERT INTO lams_organisation (organisation_id, name, description, parent_organisation_id, organisation_type_id, create_date, workspace_id) + VALUES (1, 'Root', 'Root Organisation',null,1,NOW(),1); +INSERT INTO lams_organisation (organisation_id, name, description, parent_organisation_id, organisation_type_id, create_date, workspace_id) + VALUES (2, 'Playpen', 'Developers Playpen',1,2,NOW(),2); +INSERT INTO lams_organisation (organisation_id, name, description, parent_organisation_id, organisation_type_id, create_date, workspace_id) + VALUES (3, 'Everybody', 'All People In Course',2,3,NOW(),null); +INSERT INTO lams_organisation (organisation_id, name, description, parent_organisation_id, organisation_type_id, create_date, workspace_id) + VALUES (4, 'MATH111', 'Mathematics 1',1,2,NOW(),3); +INSERT INTO lams_organisation (organisation_id, name, description, parent_organisation_id, organisation_type_id, create_date, workspace_id) + VALUES (5, 'TUTA', 'Tutorial Group A',4,3,NOW(),null); +INSERT INTO lams_organisation (organisation_id, name, description, parent_organisation_id, organisation_type_id, create_date, workspace_id) + VALUES (6, 'TUTB', 'Tutorial Group B',4,3,NOW(),null); + -- users -INSERT INTO lams_user VALUES(1, 'sysadmin','sysadmin','Mr','Fei','Yang',null,null,null,'Sydney','NSW','Australia',null,null,null,null,'fyang@melcoe.mq.edu.au',0,NOW(),1,null,1,'en','au',1,3,null); -INSERT INTO lams_user VALUES(2, 'test','test','Dr','Testing','LDAP',null,null,null,'Sydney','NSW','Australia',null,null,null,null,'test@xx.xx.xx',0,NOW(),3,null,2,'mi','nz',1,3,null); -INSERT INTO lams_user VALUES(3, 'lamskh01','dummy','Mr','Jacky','Fang',null,null,null,'Sydney','NSW','Australia',null,null,null,null,'jfang@melcoe.mq.edu.au',0,NOW(),2,null,3,'en','nz',1,3,null); +INSERT INTO lams_user (user_id,login,password,title,first_name,last_name,address_line_1,address_line_2,address_line_3, +city,state,country,day_phone,evening_phone,mobile_phone,fax,email, +disabled_flag,create_date,authentication_method_id,workspace_id, +locale_language, locale_country, flash_theme_id, html_theme_id) +VALUES(1, 'sysadmin','sysadmin','Mr','Fei','Yang',null,null,null, +'Sydney','NSW','Australia',null,null,null,null,'fyang@melcoe.mq.edu.au', +0,NOW(),1,null, +'en','au',1,3); +INSERT INTO lams_user (user_id,login,password,title,first_name,last_name,address_line_1,address_line_2,address_line_3, +city,state,country,day_phone,evening_phone,mobile_phone,fax,email, +disabled_flag,create_date,authentication_method_id,workspace_id, +locale_language, locale_country, flash_theme_id, html_theme_id) +VALUES(2, 'test','test','Dr','Testing','LDAP',null,null,null, +'Sydney','NSW','Australia',null,null,null,null,'test@xx.xx.xx', +0,NOW(),3,null, +'mi','nz',1,3); + +INSERT INTO lams_user (user_id,login,password,title,first_name,last_name,address_line_1,address_line_2,address_line_3, +city,state,country,day_phone,evening_phone,mobile_phone,fax,email, +disabled_flag,create_date,authentication_method_id,workspace_id, +locale_language, locale_country, flash_theme_id, html_theme_id) +VALUES(3, 'lamskh01','dummy','Mr','Jacky','Fang',null,null,null, +'Sydney','NSW','Australia',null,null,null,null,'jfang@melcoe.mq.edu.au', +0,NOW(),2,null, +'en','nz',1,3); + insert into lams_user (user_id,login,password,title,first_name,last_name,address_line_1,address_line_2,address_line_3, city,state,country,day_phone,evening_phone,mobile_phone, fax,email, disabled_flag,create_date,authentication_method_id,workspace_id, -base_organisation_id, flash_theme_id, html_theme_id) +flash_theme_id, html_theme_id) values (4,'mmm','mmm','Ms','Mary','Morgan','99','First Ave',null, 'Parramatta','NSW','Australia','0295099999','0298939999','0499999999', '0299999999','mmmmmmm@xx.os', -0,'20041223',1,6,4,1,3); +0,'20041223',1,4,1,3); insert into lams_user (user_id,login,password,title,first_name,last_name,address_line_1,address_line_2,address_line_3, city,state,country,day_phone,evening_phone,mobile_phone, fax,email, disabled_flag,create_date,authentication_method_id,workspace_id, -base_organisation_id, flash_theme_id, html_theme_id) +flash_theme_id, html_theme_id) values (5,'test1','test1','Dr','One','Test','1','Test Ave',null, 'Nowhere','NSW','Australia','0211111111','0211111112','0411111111', '0211111113','test1@xx.os', -0,'20041223',1,7,4,1,3); +0,'20041223',1,5,1,3); insert into lams_user (user_id,login,password,title,first_name,last_name,address_line_1,address_line_2,address_line_3, city,state,country,day_phone,evening_phone,mobile_phone, fax,email, disabled_flag,create_date,authentication_method_id,workspace_id, -base_organisation_id, flash_theme_id, html_theme_id) +flash_theme_id, html_theme_id) values (6,'test2','test2','Dr','Two','Test','2','Test Ave',null, 'Nowhere','NSW','Australia','0211111111','0211111112','0411111111', '0211111113','test2@xx.os', -0,'20041223',1,8,4,1,3); +0,'20041223',1,6,1,3); insert into lams_user (user_id,login,password,title,first_name,last_name,address_line_1,address_line_2,address_line_3, city,state,country,day_phone,evening_phone,mobile_phone, fax,email, disabled_flag,create_date,authentication_method_id,workspace_id, -base_organisation_id, flash_theme_id, html_theme_id) +flash_theme_id, html_theme_id) values (7,'test3','test3','Dr','Three','Test','3','Test Ave',null, 'Nowhere','NSW','Australia','0211111111','0211111112','0411111111', '0211111113','test3@xx.os', -0,'20041223',1,9,4,1,3); +0,'20041223',1,7,1,3); insert into lams_user (user_id,login,password,title,first_name,last_name,address_line_1,address_line_2,address_line_3, city,state,country,day_phone,evening_phone,mobile_phone, fax,email, disabled_flag,create_date,authentication_method_id,workspace_id, -base_organisation_id, flash_theme_id, html_theme_id) +flash_theme_id, html_theme_id) values (8,'test4','test4','Dr','One','Test','4','Test Ave',null, 'Nowhere','NSW','Australia','0211111111','0211111112','0411111111', '0211111113','test4@xx.os', -0,'20041223',1,10,4,1,3); +0,'20041223',1,8,1,3); -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(1,null,'ROOT',1,1,'20041223','20041223',1); +--- sysadmin only belongs to root +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (1, 1, 1); -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(2,1,'MACQUAIRE UNIVERSITY',2,1,'20041223','20041223',1); +--- all other users belong to Playpen +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (2, 2, 2); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (3, 2, 3); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (4, 2, 4); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (5, 2, 5); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (6, 2, 6); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (7, 2, 7); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (8, 2, 8); +--- all other users belong to Playpen's class Everybody +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (9, 3, 2); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (10, 3, 3); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (11, 3, 4); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (12, 3, 5); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (13, 3, 6); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (14, 3, 7); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (15, 3, 8); +--- all other users belong to MATH111 +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (16, 4, 2); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (17, 4, 3); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (18, 4, 4); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (19, 4, 5); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (20, 4, 6); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (21, 4, 7); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (22, 4, 8); +--- all test3, test4 users belong to Tutorial B, the other users belong to Tutorial A +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (23, 5, 2); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (24, 5, 3); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (25, 5, 4); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (26, 5, 5); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (27, 5, 6); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (28, 6, 7); +INSERT INTO lams_user_organisation (user_organisation_id, organisation_id, user_id) VALUES (29, 6, 8); -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(3,1,'MELCOE',3,1,'20041223','20041223',1); +-- sysadmin has sysadmin role only +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (1, 1, 1); -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(4,1,'LAMS',4,1,'20041223','20041223',1); +-- test, lamskh01 and mmm are authors, teachers and learners in Playpen +-- test1, test2, test3 and test4 are authors, staff and learners in Playpen +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (2, 2, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (3, 3, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (4, 4, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (5, 5, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (6, 6, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (7, 7, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (8, 8, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (9, 2, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (10, 3, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (11, 4, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (12, 5, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (13, 6, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (14, 7, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (15, 8, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (16, 2, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (17, 3, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (18, 4, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (19, 5, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (20, 6, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (21, 7, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (22, 8, 5); -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(5,1,'MAMS',5,1,'20041223','20041223',1); +-- test, lamskh01 and mmm are teachers and learners in Everybody +-- test1, test2, test3 and test4 are staff and learners in Everybody +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (23, 9, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (24, 10, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (25, 11, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (26, 12, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (27, 13, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (28, 14, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (29, 16, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (30, 9, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (31, 10, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (32, 11, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (33, 12, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (34, 13, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (35, 14, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (36, 15, 5); -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(6,4,'Mary Morgan Workspace',6,4,'20041223','20041223',1); +-- test, lamskh01 and mmm are authors, teachers and learners in MATH111 +-- test1, test2, test3 and test4 are authors, staff and learners in MATH111 +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (37, 16, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (38, 17, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (39, 18, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (40, 19, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (41, 20, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (42, 21, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (43, 22, 3); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (44, 16, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (45, 17, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (46, 18, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (47, 19, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (48, 20, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (49, 21, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (50, 22, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (51, 16, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (52, 17, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (53, 18, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (54, 19, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (55, 20, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (56, 21, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (57, 22, 5); -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(7,6,'Mary Morgan Run Sequences Folder',6,4,'20041223','20041223',2); +-- test, lamskh01 and mmm are teachers and learners in Tutorial A +-- test1, test2 are staff and learners in Tutorial A +-- test3 and test4 are staff and learners in Tutorial B +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (58, 23, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (59, 24, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (60, 25, 6); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (61, 26, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (62, 27, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (63, 28, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (64, 29, 4); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (65, 23, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (66, 24, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (67, 25, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (68, 26, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (69, 27, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (70, 28, 5); +INSERT INTO lams_user_organisation_role (user_organisation_role_id, user_organisation_id, role_id) VALUES (71, 29, 5); -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(8,6,'Documents',6,4,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(9,6,'Pictures',6,4,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(10,6,'Media',6,4,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(11,10,'Songs',6,4,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(12,10,'Movies',6,4,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(13,4,'One Test Workspace',7,5,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(14,13,'One Test Run Sequences Folder',7,5,'20041223','20041223',2); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(15,4,'Two Test Workspace',8,6,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(16,15,'Two Test Run Sequences Folder',8,6,'20041223','20041223',2); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(17,4,'Three Test Workspace',9,7,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(18,17,'Three Test Run Sequences Folder',9,7,'20041223','20041223',2); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(19,4,'Four Test Workspace',10,8,'20041223','20041223',1); - -insert into lams_workspace_folder (workspace_folder_id,parent_folder_id,name,workspace_id,user_id,create_date_time,last_modified_date_time,lams_workspace_folder_type_id) -values(20,19,'Four Test Run Sequences Folder',10,8,'20041223','20041223',2); - -update lams_workspace set root_folder_id = 1 where workspace_id = 1; -update lams_workspace set root_folder_id = 2 where workspace_id = 2; -update lams_workspace set root_folder_id = 3 where workspace_id = 3; -update lams_workspace set root_folder_id = 4 where workspace_id = 4; -update lams_workspace set root_folder_id = 5 where workspace_id = 5; -update lams_workspace set root_folder_id = 6 where workspace_id = 6; -update lams_workspace set root_folder_id = 13 where workspace_id = 7; -update lams_workspace set root_folder_id = 15 where workspace_id = 8; -update lams_workspace set root_folder_id = 17 where workspace_id = 9; -update lams_workspace set root_folder_id = 19 where workspace_id = 10; - -update lams_workspace set def_run_seq_fld_id = 7 where workspace_id = 6; -update lams_workspace set def_run_seq_fld_id = 14 where workspace_id = 7; -update lams_workspace set def_run_seq_fld_id = 16 where workspace_id = 8; -update lams_workspace set def_run_seq_fld_id = 18 where workspace_id = 9; -update lams_workspace set def_run_seq_fld_id = 20 where workspace_id = 10; - SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java (.../Organisation.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java (.../Organisation.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -67,13 +67,10 @@ private Set childOrganisations; /** persistent field */ - private Set users; - - /** persistent field */ private Set lessons; /** full constructor */ - public Organisation(String name, String description, Organisation parentOrganisation, Date createDate, Workspace workspace, OrganisationType organisationType, Set userOrganisations, Set childOrganisations, Set users, Set lessons) { + public Organisation(String name, String description, Organisation parentOrganisation, Date createDate, Workspace workspace, OrganisationType organisationType, Set userOrganisations, Set childOrganisations, Set lessons) { this.name = name; this.description = description; this.parentOrganisation = parentOrganisation; @@ -82,7 +79,6 @@ this.organisationType = organisationType; this.userOrganisations = userOrganisations; this.childOrganisations = childOrganisations; - this.users = users; this.lessons = lessons; } @@ -91,12 +87,11 @@ } /** minimal constructor */ - public Organisation(Date createDate, Workspace workspace, OrganisationType organisationType, Set userOrganisations, Set users, Set lessons) { + public Organisation(Date createDate, Workspace workspace, OrganisationType organisationType, Set userOrganisations, Set lessons) { this.createDate = createDate; this.workspace = workspace; this.organisationType = organisationType; this.userOrganisations = userOrganisations; - this.users = users; this.lessons = lessons; } public Organisation(String name, @@ -247,25 +242,6 @@ this.childOrganisations = childOrganisations; } - /** - * @hibernate.set - * lazy="true" - * inverse="true" - * cascade="none" - * @hibernate.collection-key - * column="base_organisation_id" - * @hibernate.collection-one-to-many - * class="org.lamsfoundation.lams.usermanagement.User" - * - */ - public Set getUsers() { - return this.users; - } - - public void setUsers(Set users) { - this.users = users; - } - /** * @hibernate.set * lazy="true" Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/OrganisationType.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/OrganisationType.java (.../OrganisationType.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/OrganisationType.java (.../OrganisationType.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -20,7 +20,7 @@ * http://www.gnu.org/licenses/gpl.txt * **************************************************************** */ -/* $$Id$$ */ +/* $Id$ */ package org.lamsfoundation.lams.usermanagement; import java.io.Serializable; @@ -36,11 +36,9 @@ */ public class OrganisationType implements Serializable { - public static final String ROOT = "ROOT ORGANISATION"; - - public static final String BASE = "BASE ORGANISATION"; - - public static final String SUB = "SUB-ORGANISATION"; + public static final String ROOT_DESCRIPTION = "ROOT ORGANISATION"; + public static final String COURSE_DESCRIPTION = "COURSE ORGANISATION"; + public static final String CLASS_DESCRIPTION = "CLASS ORGANISATION"; /** identifier field */ private Integer organisationTypeId; Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java =================================================================== diff -u -r4e938450de054d55b7b48e7cc241b18bea8b7816 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java (.../User.java) (revision 4e938450de054d55b7b48e7cc241b18bea8b7816) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java (.../User.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -117,9 +117,6 @@ private Set userOrganisations; /** persistent field */ - private Organisation baseOrganisation; - - /** persistent field */ private CSSThemeVisualElement flashTheme; /** persistent field */ @@ -144,7 +141,7 @@ private Set lessons; /** full constructor */ - public User(String login, String password, String title, String firstName, String lastName, String addressLine1, String addressLine2, String addressLine3, String city, String state, String country, String dayPhone, String eveningPhone, String mobilePhone, String fax, String email, Boolean disabledFlag, Date createDate, Workspace workspace, AuthenticationMethod authenticationMethod, CSSThemeVisualElement flashTheme, CSSThemeVisualElement htmlTheme, Set userOrganisations, Organisation baseOrganisation, String chatId, Set learnerProgresses, Set userToolSessions, Set userGroups, Set learningDesigns, Set lessons) { + public User(String login, String password, String title, String firstName, String lastName, String addressLine1, String addressLine2, String addressLine3, String city, String state, String country, String dayPhone, String eveningPhone, String mobilePhone, String fax, String email, Boolean disabledFlag, Date createDate, Workspace workspace, AuthenticationMethod authenticationMethod, CSSThemeVisualElement flashTheme, CSSThemeVisualElement htmlTheme, Set userOrganisations, String chatId, Set learnerProgresses, Set userToolSessions, Set userGroups, Set learningDesigns, Set lessons) { this.login = login; this.password = password; this.title = title; @@ -169,7 +166,6 @@ this.htmlTheme = htmlTheme; this.chatId = chatId; this.userOrganisations = userOrganisations; - this.baseOrganisation = baseOrganisation; this.learnerProgresses = learnerProgresses; this.userToolSessions = userToolSessions; this.userGroups = userGroups; @@ -182,15 +178,14 @@ } /** minimal constructor */ - public User(String login, String password, Boolean disabledFlag, Date createDate, Workspace workspace, AuthenticationMethod authenticationMethod, Set userOrganisations, Organisation baseOrganisation, Set learnerProgresses, Set userToolSessions, Set userGroups, Set learningDesigns, Set lessons) { + public User(String login, String password, Boolean disabledFlag, Date createDate, Workspace workspace, AuthenticationMethod authenticationMethod, Set userOrganisations, Set learnerProgresses, Set userToolSessions, Set userGroups, Set learningDesigns, Set lessons) { this.login = login; this.password = password; this.disabledFlag = disabledFlag; this.createDate = createDate; this.workspace = workspace; this.authenticationMethod = authenticationMethod; this.userOrganisations = userOrganisations; - this.baseOrganisation = baseOrganisation; this.learnerProgresses = learnerProgresses; this.userToolSessions = userToolSessions; this.userGroups = userGroups; @@ -548,20 +543,6 @@ /** - * @hibernate.many-to-one - * not-null="true" - * @hibernate.column name="base_organisation_id" - * - */ - public Organisation getBaseOrganisation() { - return this.baseOrganisation; - } - - public void setBaseOrganisation(Organisation baseOrganisation) { - this.baseOrganisation = baseOrganisation; - } - - /** * @hibernate.set * lazy="true" * inverse="true" Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/Workspace.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/Workspace.java (.../Workspace.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/Workspace.java (.../Workspace.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -44,9 +44,6 @@ private WorkspaceFolder rootFolder; /** persistent field */ - private WorkspaceFolder defaultRunSequencesFolder; - - /** persistent field */ private Set users; /** persistent field */ @@ -104,22 +101,6 @@ /** - * @hibernate.many-to-one - * not-null="true" - * lazy="false" - * @hibernate.column name="def_run_seq_fld_id" - * - */ - public WorkspaceFolder getDefaultRunSequencesFolder() { - return defaultRunSequencesFolder; - } - - public void setDefaultRunSequencesFolder(WorkspaceFolder defaultRunSequencesFolder) { - this.defaultRunSequencesFolder = defaultRunSequencesFolder; - } - - - /** * @hibernate.set * lazy="true" * inverse="true" Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTO.java =================================================================== diff -u -r1ca5202767bc23a8aa70f2be94a7267f176250cb -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTO.java (.../OrganisationDTO.java) (revision 1ca5202767bc23a8aa70f2be94a7267f176250cb) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTO.java (.../OrganisationDTO.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -42,25 +42,31 @@ private Integer parentID; private String name; private String description; + private Vector roleNames; private Vector nodes; + private Integer organisationTypeId; public OrganisationDTO(){ } public OrganisationDTO(Integer organisationID, Integer parentID, String name, - String description) { + String description, Integer organisationTypeId) { super(); this.organisationID = organisationID; this.parentID = parentID; this.name = name; this.description = description; + this.organisationTypeId = organisationTypeId; + this.roleNames = new Vector(); this.nodes = new Vector(); } public OrganisationDTO(Organisation organisation){ this.organisationID = organisation.getOrganisationId(); this.parentID = organisation.getParentOrganisation().getOrganisationId(); this.name = organisation.getName(); this.description = organisation.getDescription(); + this.organisationTypeId = organisation.getOrganisationType().getOrganisationTypeId(); + this.roleNames = new Vector(); this.nodes = new Vector(); } /** @@ -89,6 +95,11 @@ return parentID!=null?parentID:WDDXTAGS.NUMERIC_NULL_VALUE_INTEGER; } + /** Get the organisation type id - 1 for root, 2 for course and 3 for class */ + public Integer getOrganisationTypeId() { + return organisationTypeId; + } + public void addNode(OrganisationDTO organisation){ nodes.add(organisation); } @@ -100,10 +111,17 @@ } } - public Vector getNodes(){ + public Vector getNodes(){ return nodes; } + public Vector getRoleNames() { + return roleNames; + } + public void addRoleName(String roleName) { + roleNames.add(roleName); + } + /** Two OrganisationDTOs are equals if both have a valid (not null) organisationID * and the organisationID's are the same. */ @@ -120,5 +138,5 @@ public int hashCode() { return new HashCodeBuilder().append(getOrganisationID()).toHashCode(); } - + } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTOFactory.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTOFactory.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTOFactory.java (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -0,0 +1,145 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.usermanagement.dto; + +import java.util.Collection; +import java.util.Iterator; +import java.util.Vector; + +public class OrganisationDTOFactory { + + /** Convert the given list of organisation DTOs to a hierarchy of OrganisationDTOs. + * + * @param orgs Collection of Organisation DTO's + * @param root Root Organisation DTO + * @return OrganisationDTO tree + */ + public static OrganisationDTO createTree(Collection orgs){ + + int count = 0; // bystander node count + OrganisationDTO rootOrgDTO = null; // root DTO holder + + Iterator it = orgs.iterator(); + + while(it.hasNext()){ + if(rootOrgDTO == null) { + /** create dummy root for tree and add first element as child node */ + OrganisationDTO rt = new OrganisationDTO(new Integer(-1), new Integer(-1), "Root", "Root Description", new Integer(1)); + OrganisationDTO initial = (OrganisationDTO) it.next(); + rt.addNode(initial); + rootOrgDTO = rt; + } else { + /** position the DTO in the tree */ + OrganisationDTO organisationDTO = (OrganisationDTO) it.next(); + OrganisationDTO parent = findParent(rootOrgDTO, organisationDTO); + + if(parent!=null) { + /** save amended tree */ + rootOrgDTO = parent; + } else { + /** make bystander node */ + rootOrgDTO.addNode(organisationDTO); + count++; + } + } + } + + /** Move bystander nodes to correct position in tree */ + if(count>0){ + Vector nodes = rootOrgDTO.getNodes(); + Iterator i = nodes.iterator(); + while(i.hasNext()){ + OrganisationDTO dto = (OrganisationDTO) i.next(); + OrganisationDTO parent = findParent(rootOrgDTO, dto); + if(parent!= null){ + /** remove bystander node and save amended tree */ + i.remove(); + rootOrgDTO = parent; + } + } + } + + return rootOrgDTO; + } + + /** + * Find the correct position for the DTO node in the tree + * + * + * @param root Dummy root DTO + * @param tmp DTO to position + * @return The amended organisation tree if adjustment made + */ + private static OrganisationDTO findParent(OrganisationDTO root, OrganisationDTO tmp){ + /** check the root's child nodes + * note: root here is substitute root */ + if(checkNodes(root, tmp)) + return root; + else + return null; + } + + /** + * Check if passed in node is a child node of the root's child nodes. + * + * @param root Root DTO + * @param tmp DTO to position + * @return If added to branch returns true, otherwise returns false + */ + private static boolean checkNodes(OrganisationDTO root, OrganisationDTO tmp){ + if(root.equals(tmp)) + return false; + + /** child DTO nodes */ + Vector nodes = root.getNodes(); + + if(nodes.size() > 0){ + Iterator it = nodes.iterator(); + while(it.hasNext()){ + OrganisationDTO child = (OrganisationDTO) it.next(); + if(child.getOrganisationID().equals(tmp.getParentID())) { + /** added as child node */ + child.addNode(tmp); + return true; + } else if(child.getParentID().equals(tmp.getOrganisationID())) { + /** added as parent node of child node and child of root */ + OrganisationDTO temp = child; + it.remove(); + tmp.addNode(temp); + root.addNode(tmp); + return true; + } else { + /** check nodes of child */ + if(checkNodes(child, tmp)) + return true; + } + } + + } + + return false; + } + +} Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== diff -u -r49c533ccf0d5af6d7e654ec1e341d40b29b74e98 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 49c533ccf0d5af6d7e654ec1e341d40b29b74e98) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -23,24 +23,27 @@ /* $$Id$$ */ package org.lamsfoundation.lams.usermanagement.service; -import java.io.IOException; import java.util.List; -import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; -import org.lamsfoundation.lams.usermanagement.dao.IRoleDAO; -import org.lamsfoundation.lams.usermanagement.dao.IOrganisationDAO; -import org.lamsfoundation.lams.usermanagement.dao.IOrganisationTypeDAO; -import org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationDAO; -import org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationRoleDAO; -import org.lamsfoundation.lams.usermanagement.dao.IAuthenticationMethodDAO; -import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.usermanagement.Role; +import java.util.Vector; + +import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationType; +import org.lamsfoundation.lams.usermanagement.Role; +import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; -import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Workspace; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; +import org.lamsfoundation.lams.usermanagement.dao.IAuthenticationMethodDAO; +import org.lamsfoundation.lams.usermanagement.dao.IOrganisationDAO; +import org.lamsfoundation.lams.usermanagement.dao.IOrganisationTypeDAO; +import org.lamsfoundation.lams.usermanagement.dao.IRoleDAO; +import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; +import org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationDAO; +import org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationRoleDAO; +import org.lamsfoundation.lams.usermanagement.dto.OrganisationDTO; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; /** * User Management Service Interface to handle communication between @@ -174,14 +177,19 @@ public UserOrganisation getUserOrganisation(Integer userId,Integer organisationId); /** - * Retrieves organisations in which the user - * has the specified role + * Retrieves a tree of organisations for a user. The top of the tree is a "dummy" root + * organisation, just so that we have a real tree. This makes life easier for Flash. * + * If restrictToRoleNames contains any role names (ie not null and size > 0 ) + * then it will restrict the organisations to those in which the user has one of the + * given roles. If restrictToRoleNames is null/empty then till return all organisations + * to which the user belongs. + * * @param user the user - * @param roleName role's name - * @return List of organisations + * @param restrictToRoleNames role names to which to restrict the user + * @return List of organisationDTOs */ - public List getOrganisationsForUserByRole(User user, String roleName); + public OrganisationDTO getOrganisationsForUserByRole(User user, List restrictToRoleNames); /** * Retrieves child organisations of the parentOrg @@ -201,15 +209,6 @@ /** - * Retrieves the base organisation - * - * @param organisation the organisation - * @return Base Organisation of the organisation specified by the - * parameter - */ - public Organisation getBaseOrganisation(Organisation organisation); - - /** * Retrieves roles in which the user * has the specified role * @@ -362,13 +361,11 @@ /** * This method returns the users in the Organisation with * given organisationID and roleName - * in WDDX format. * * @param organisationID * @param roleName - * @return - * @throws IOException + * @return UserDTO objects (in a Vector to suit WDDX) */ - public String getUsersFromOrganisationByRole(Integer organisationID, String roleName)throws IOException; + public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName); } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== diff -u -r49c533ccf0d5af6d7e654ec1e341d40b29b74e98 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 49c533ccf0d5af6d7e654ec1e341d40b29b74e98) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -20,10 +20,9 @@ * http://www.gnu.org/licenses/gpl.txt * **************************************************************** */ -/* $$Id$$ */ +/* $Id$ */ package org.lamsfoundation.lams.usermanagement.service; -import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; @@ -52,14 +51,14 @@ import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceDAO; import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO; 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.util.wddx.FlashMessage; /** *

* View Source *

- * + * * Manually caches the user objects (by user id) in the shared cache. * Whenever a user object is modified, the cached version must be * removed. @@ -94,8 +93,6 @@ protected ICacheManager cacheManager; - private FlashMessage flashMessage; - private String[] userClassParts = null; /** @@ -223,21 +220,6 @@ } /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getBaseOrganisation(org.lamsfoundation.lams.usermanagement.Organisation) - */ - public Organisation getBaseOrganisation(Organisation organisation) { - if (organisation.getOrganisationType().getName().equals( - OrganisationType.ROOT)) { - return null; - } else if (organisation.getOrganisationType().getName().equals( - OrganisationType.BASE)) { - return organisation; - } else { - return getBaseOrganisation(organisation.getParentOrganisation()); - } - } - - /** * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getRoleByName(java.lang.String) */ public Role getRoleByName(String roleName) { @@ -306,27 +288,34 @@ } /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getOrganisationsForUserByRole(org.lamsfoundation.lams.usermanagement.User, - * java.lang.String) + * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getOrganisationRolesForUser(org.lamsfoundation.lams.usermanagement.User, java.util.List) */ - public List getOrganisationsForUserByRole(User user, String roleName) { - List list = new ArrayList(); - Iterator i = userOrganisationDAO.getUserOrganisationsByUser(user) - .iterator(); + public OrganisationDTO getOrganisationsForUserByRole(User user, List restrictToRoleNames) { + List list = new ArrayList(); + Iterator i = userOrganisationDAO.getUserOrganisationsByUser(user).iterator(); + // work out whether or not the restriction applies once only - performance tweak + boolean restrictRoles = restrictToRoleNames != null && restrictToRoleNames.size() > 0; + while (i.hasNext()) { UserOrganisation userOrganisation = (UserOrganisation) i.next(); - Iterator i2 = userOrganisation.getUserOrganisationRoles() - .iterator(); + OrganisationDTO dto = userOrganisation.getOrganisation().getOrganisationDTO(); + Iterator i2 = userOrganisation.getUserOrganisationRoles().iterator(); + + boolean roleFound = false; while (i2.hasNext()) { - UserOrganisationRole userOrgansiationRole = (UserOrganisationRole) i2 - .next(); - if (userOrgansiationRole.getRole().getName().equals(roleName)) { - list.add(userOrgansiationRole.getUserOrganisation() - .getOrganisation()); + + UserOrganisationRole userOrganisationRole = (UserOrganisationRole) i2.next(); + String roleName = userOrganisationRole.getRole().getName(); + if ( ! restrictRoles || restrictToRoleNames.contains(roleName) ) { + dto.addRoleName(roleName); + roleFound = true; } } + if ( roleFound ) { + list.add(dto); + } } - return list; + return OrganisationDTOFactory.createTree(list); } /** @@ -520,7 +509,6 @@ */ private Integer createUserOrganisation(User user, Integer roleID) { UserOrganisation userOrganisation = new UserOrganisation(); - userOrganisation.setOrganisation(user.getBaseOrganisation()); userOrganisation.setUser(user); userOrganisationDAO.saveUserOrganisation(userOrganisation); userOrganisation.addUserOrganisationRole(createUserOrganisationRole( @@ -559,35 +547,23 @@ * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUsersFromOrganisationByRole(java.lang.Integer, * java.lang.String) */ - public String getUsersFromOrganisationByRole(Integer organisationID, - String roleName) throws IOException { + public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName) { + Vector users = new Vector(); - Organisation organisation = organisationDAO - .getOrganisationById(organisationID); + Organisation organisation = organisationDAO.getOrganisationById(organisationID); if (organisation != null) { Iterator iterator = organisation.getUserOrganisations().iterator(); while (iterator.hasNext()) { - UserOrganisation userOrganisation = (UserOrganisation) iterator - .next(); - Iterator userOrganisationRoleIterator = userOrganisation - .getUserOrganisationRoles().iterator(); + UserOrganisation userOrganisation = (UserOrganisation) iterator.next(); + Iterator userOrganisationRoleIterator = userOrganisation.getUserOrganisationRoles().iterator(); while (userOrganisationRoleIterator.hasNext()) { - UserOrganisationRole userOrganisationRole = (UserOrganisationRole) userOrganisationRoleIterator - .next(); - if (userOrganisationRole.getRole().getName().equals( - roleName)) + UserOrganisationRole userOrganisationRole = (UserOrganisationRole) userOrganisationRoleIterator.next(); + if (userOrganisationRole.getRole().getName().equals(roleName)) users.add(userOrganisation.getUser().getUserDTO()); } } - flashMessage = new FlashMessage("getUsersFromOrganisationByRole", - users); - - } else - flashMessage = new FlashMessage("getUsersFromOrganisationByRole", - "No such Organisation with an organisation_id of:" - + organisationID + " exists", FlashMessage.ERROR); - - return flashMessage.serializeMessage(); + } + return users; } } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/ExcelUserImportFileParser.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/ExcelUserImportFileParser.java (.../ExcelUserImportFileParser.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/ExcelUserImportFileParser.java (.../ExcelUserImportFileParser.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -193,7 +193,6 @@ { if(!existingUsersOnly){ user.setCreateDate(new Date()); - user.setBaseOrganisation(service.getBaseOrganisation(org)); service.createUser(user); } UserOrganisation userOrg = new UserOrganisation(); Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -219,12 +219,12 @@ //create learner class group Set learnergroups = new HashSet(); //make a copy of lazily initialized users - Set users = new HashSet(testOrg.getUsers()); + learnergroups.add(testUser); Group learnerClassGroup = new Group(null,//group id TEST_GROUP_NAME_LEARNER, testLessonClass.getNextGroupOrderId(), testLessonClass, - users, + learnergroups, new HashSet());//tool session, should be empty now learnergroups.add(learnerClassGroup); Index: lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java =================================================================== diff -u -r76087d6fd4aad8e73644bcea5dd26cf3485a8b43 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java (.../TestUserManagementService.java) (revision 76087d6fd4aad8e73644bcea5dd26cf3485a8b43) +++ lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java (.../TestUserManagementService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -78,7 +78,6 @@ user.setDisabledFlag(new Boolean(false)); user.setCreateDate(new Date()); user.setAuthenticationMethod(authenticationMethodDAO.getAuthenticationMethodById(new Integer(2))); - user.setBaseOrganisation(organisationDAO.getOrganisationById(new Integer(1))); assertNotNull(userManagementService.saveUser(user, new Integer(3))); } /** Index: lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/UserDAOTest.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/UserDAOTest.java (.../UserDAOTest.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/UserDAOTest.java (.../UserDAOTest.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -84,13 +84,11 @@ user.setDisabledFlag(new Boolean(false)); user.setCreateDate(new Date()); user.setAuthenticationMethod(authenticationMethodDAO.getAuthenticationMethodById(new Integer(2))); - user.setBaseOrganisation(organisationDAO.getOrganisationById(new Integer(1))); userDAO.saveUser(user); createUserOrganisation(user); } private Integer createUserOrganisation(User user){ UserOrganisation userOrganisation = new UserOrganisation(); - userOrganisation.setOrganisation(user.getBaseOrganisation()); userOrganisation.setUser(user); userOrganisationDAO.saveUserOrganisation(userOrganisation); userOrganisation.addUserOrganisationRole(createUserOrganisationRole(userOrganisation)); Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== diff -u -ra0c3e28a4eb2f3f06a313c3bd09d58bafb812317 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision a0c3e28a4eb2f3f06a313c3bd09d58bafb812317) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -408,6 +408,7 @@ //--------------------------------------------------------------------- /** * Create the lesson class and the staff class for a preview lesson. + * The lesson is not attached to any organisation. * * @param userID User ID of the teacher running the preview. Mandatory. * @param lessonID ID of the lesson @@ -438,7 +439,6 @@ public abstract int deleteAllOldPreviewLessons(); /* TODO Dummy methods - to be removed */ - public List getOrganisationsUsers(Integer userId); public List getLearningDesigns(Long userId); Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -ra0c3e28a4eb2f3f06a313c3bd09d58bafb812317 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision a0c3e28a4eb2f3f06a313c3bd09d58bafb812317) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -71,11 +71,11 @@ import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.usermanagement.Workspace; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; import org.lamsfoundation.lams.usermanagement.dao.IOrganisationDAO; import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO; +import org.lamsfoundation.lams.usermanagement.dto.OrganisationDTO; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.Configuration; @@ -274,8 +274,7 @@ *
  • 2. Go through all the tool activities defined in the learning design, * create a runtime copy of all tool's content.
  • * - *

    Tries to copy the design into the user's default runtime sequence folder. If - * this is not available, then it is copied into the existing folder.

    + *

    As a runtime design, it is not copied into any folder.

    * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#initializeLesson(String, String, long, Integer) */ public Lesson initializeLesson(String lessonName, @@ -292,16 +291,8 @@ // The duplicated sequence should go in the run sequences folder, so we had better // wourk out what the folder is! User user = (userID != null ? userManagementService.getUserById(userID) : null); - Workspace workspace = (user != null ? user.getWorkspace() : null); - WorkspaceFolder destinationFolder = ( workspace!=null ? workspace.getDefaultRunSequencesFolder() : null); - if ( destinationFolder == null ) { - log.error("initializeLesson: Copying learning design "+learningDesignId+" for userID "+userID - +". Unable to determine runtime sequence folder - copying into folder of the original design"); - destinationFolder = originalLearningDesign.getWorkspaceFolder(); - } + return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, LearningDesign.COPY_TYPE_LESSON); - return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, LearningDesign.COPY_TYPE_LESSON, destinationFolder); - } /** @@ -320,21 +311,21 @@ } User user = (userID != null ? userManagementService.getUserById(userID) : null); - return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, LearningDesign.COPY_TYPE_PREVIEW, null); + return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, LearningDesign.COPY_TYPE_PREVIEW); } public Lesson initializeLesson(String lessonName, String lessonDescription, LearningDesign originalLearningDesign, User user, - int copyType, - WorkspaceFolder folder) { + int copyType) { //copy the current learning design LearningDesign copiedLearningDesign = authoringService.copyLearningDesign(originalLearningDesign, new Integer(copyType), user, - folder, true); + null, + true); // copy the tool content // unfortuanately, we have to reaccess the activities to make sure we get the // subclass, not a hibernate proxy. @@ -1431,21 +1422,6 @@ return table; } - /* ** Temporary methods to support the dummy monitoring pages */ - /** Get a map of organisations. Their users shoulc and their users. */ - public List getOrganisationsUsers(Integer userId) { - - User user = userManagementService.getUserById(userId); - List orgs = userManagementService.getOrganisationsForUserByRole(user, Role.STAFF); - // Make sure the users are loaded - Iterator iter = orgs.iterator(); - while (iter.hasNext()) { - Organisation element = (Organisation) iter.next(); - element.getUsers(); - } - return orgs; - } - /** Get all the learning designs for this user */ public List getLearningDesigns(Long userId) { @@ -1464,7 +1440,6 @@ if ( user == null ) { throw new UserAccessDeniedException("User "+userID+" not found"); } - Organisation organisation = user.getBaseOrganisation(); // create the lesson class - add the teacher as the learner and as staff LinkedList learners = new LinkedList(); @@ -1474,7 +1449,7 @@ staffs.add(user); return createLessonClassForLesson(lessonID, - organisation, + null, "Learner Group", learners, "Staff Group", Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyForm.java =================================================================== diff -u -rd9c7ddef141d19423b6ab2914d153c2cb748f187 -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyForm.java (.../DummyForm.java) (revision d9c7ddef141d19423b6ab2914d153c2cb748f187) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyForm.java (.../DummyForm.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -30,10 +30,8 @@ import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; -import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionMessage; /** * See DummyMonitoringAction @@ -45,7 +43,6 @@ private String title; private String desc; private Long learningDesignId; - private Integer organisationId; private Integer startDay; private Integer startMonth; private Integer startYear; @@ -95,15 +92,6 @@ } - public Integer getOrganisationId() { - return organisationId; - } - - - public void setOrganisationId(Integer organisationId) { - this.organisationId = organisationId; - } - public Integer getStartDay() { return startDay; } Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java =================================================================== diff -u -r0d064806d262c256111bd37392a61e856d83caee -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java (.../DummyMonitoringAction.java) (revision 0d064806d262c256111bd37392a61e856d83caee) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java (.../DummyMonitoringAction.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -85,7 +85,7 @@ //--------------------------------------------------------------------- private IMonitoringService monitoringService; private IUserManagementService usermanageService; - + private Integer everybodyClass = new Integer(3); //--------------------------------------------------------------------- // Class level constants - session attributes //--------------------------------------------------------------------- @@ -99,7 +99,6 @@ private static final String LESSON_PARAMETER = "lesson"; private static final String LESSONS_PARAMETER = "lessons"; private static final String ACTIVITIES_PARAMETER = "activities"; - private static final String ORGS_PARAMETER = "organisations"; private static final String DESIGNS_PARAMETER = "designs"; @@ -126,10 +125,6 @@ List designs = monitoringService.getLearningDesigns(new Long(getUserId().longValue())); request.getSession().setAttribute(DESIGNS_PARAMETER,designs); - - List organisations = monitoringService.getOrganisationsUsers(getUserId()); - request.getSession().setAttribute(ORGS_PARAMETER,organisations); - return mapping.findForward(START_LESSON_FORWARD); } @@ -171,12 +166,10 @@ if ( ldId == null ) throw new IOException("Learning design id must be set"); - Integer organisationId = dummyForm.getOrganisationId(); - if ( organisationId == null ) - throw new IOException("Organisation must be set"); - Organisation organisation = usermanageService.getOrganisationById(organisationId); + // hardcode to use the Playpen:Everybody class + Organisation organisation = usermanageService.getOrganisationById(everybodyClass); if ( organisation == null ) - throw new IOException("Organisation cannot be found. Id was "+organisationId); + throw new IOException("Organisation cannot be found. Id was "+everybodyClass); String title = dummyForm.getTitle(); if ( title == null ) title = "lesson"; @@ -186,17 +179,14 @@ // initialize the lesson Lesson testLesson = monitoringService.initializeLesson(title,desc,ldId.longValue(),user.getUserId()); - // create the lesson class - add all the users in this organisation to the lesson class + // create the lesson class - add all the users in this organisation to the lesson class irrespective of + // role. normally would check they are learners but too much hassle for dummy code. // add user as staff - LinkedList learners = new LinkedList(); - Iterator iter = organisation.getUsers().iterator(); - learners.add(user); - while (iter.hasNext()) { - User element = (User) iter.next(); - learners.add(element); - } + LinkedList learners = new LinkedList(); + List users = usermanageService.getUsersFromOrganisation(everybodyClass); + learners.addAll(users); - LinkedList staffs = new LinkedList(); + LinkedList staffs = new LinkedList(); staffs.add(user); testLesson = monitoringService.createLessonClassForLesson(testLesson.getLessonId().longValue(), Index: lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java =================================================================== diff -u -r0d064806d262c256111bd37392a61e856d83caee -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision 0d064806d262c256111bd37392a61e856d83caee) +++ lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -199,6 +199,7 @@ Lesson createdLesson = lessonDao.getLesson(TEST_LESSON_ID); assertEquals("verify the staff group",staffs.size(),createdLesson.getLessonClass().getStaffGroup().getUsers().size()); + assertNotNull("verify lesson has organisation",createdLesson.getOrganisation()); assertEquals("verify the organization",TEST_ORGANIZATION_ID,createdLesson.getOrganisation().getOrganisationId()); assertEquals("verify number of the learners",1,createdLesson.getAllLearners().size()); assertEquals("verify the lesson class",Grouping.CLASS_GROUPING_TYPE,createdLesson.getLessonClass().getGroupingTypeId()); Index: lams_monitoring/web/dummyStart.jsp =================================================================== diff -u -r60ab6744c92954acf8baa9eeced9837118d19d2c -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 --- lams_monitoring/web/dummyStart.jsp (.../dummyStart.jsp) (revision 60ab6744c92954acf8baa9eeced9837118d19d2c) +++ lams_monitoring/web/dummyStart.jsp (.../dummyStart.jsp) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) @@ -47,9 +47,8 @@

    Authoring does not support the entry of a title or description for a design yet, so all we are able to display is the list of learning design ids.

    -

    Please select the organisation to which the lesson should be created. The lesson - will be started with all the users that are members of that organisation.

    - +

    All lessons will be run with the users from the "Playpen:Everybody" class.

    +
    @@ -82,17 +81,6 @@ - - -
    Organisation - -
    Start Lesson