Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java,v diff -u -r1.35 -r1.36 --- lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java 14 Feb 2007 04:28:29 -0000 1.35 +++ lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java 21 Feb 2007 05:55:16 -0000 1.36 @@ -130,7 +130,6 @@ organisations.addAll(getService().getOrganisationsByTypeAndStatus(OrganisationType.COURSE_TYPE,OrganisationState.ACTIVE)); } for (Organisation org:organisations) { - log.debug("archived date: "+org.getArchivedDate()); List roles = new ArrayList(); roles.add(Role.ROLE_SYSADMIN); List userOrganisationRoles = getService().getUserOrganisationRoles(org.getOrganisationId(),request.getRemoteUser()); @@ -153,7 +152,6 @@ userOrganisations.addAll(getService().getUserOrganisationsForUserByTypeAndStatus(request.getRemoteUser(),OrganisationType.COURSE_TYPE,OrganisationState.ACTIVE)); } for (UserOrganisation userOrganisation: userOrganisations) { - log.debug("archived date: "+userOrganisation.getOrganisation().getArchivedDate()); List roles = new ArrayList(); for(Object userOrganisationRole:userOrganisation.getUserOrganisationRoles()){ roles.add(((UserOrganisationRole)userOrganisationRole).getRole().getRoleId()); @@ -283,6 +281,14 @@ if(organisation.getOrganisationState().getOrganisationStateId().equals(state)){ List classRoles = new ArrayList(); List userOrganisationRoles = getService().getUserOrganisationRoles(organisation.getOrganisationId(),username); + // don't list the subgroup if user is not a member, and not a group admin/manager + if (userOrganisationRoles==null || userOrganisationRoles.isEmpty()) { + if (!contains(roles,Role.ROLE_GROUP_ADMIN) && + !contains(roles,Role.ROLE_GROUP_MANAGER) && + !contains(roles,Role.ROLE_SYSADMIN)) { + continue; + } + } for(UserOrganisationRole userOrganisationRole:userOrganisationRoles){ classRoles.add(userOrganisationRole.getRole().getRoleId()); }