Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java =================================================================== diff -u -r6e0e90dc7e6da0768ae9b479e544172b7f87472a -rc8d9e121da6a43c58fefb9ccb513be3bb3f17875 --- lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision 6e0e90dc7e6da0768ae9b479e544172b7f87472a) +++ lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision c8d9e121da6a43c58fefb9ccb513be3bb3f17875) @@ -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()); }