Index: lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java =================================================================== diff -u -refd67298c7f0ea03a8fc9d670329812589db742a -rdddec00b716f2a13e76beca0a915d406672c4de0 --- lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java (.../OrganisationGroupAction.java) (revision efd67298c7f0ea03a8fc9d670329812589db742a) +++ lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java (.../OrganisationGroupAction.java) (revision dddec00b716f2a13e76beca0a915d406672c4de0) @@ -62,8 +62,10 @@ import org.lamsfoundation.lams.lesson.service.ILessonService; import org.lamsfoundation.lams.monitoring.web.GroupingAJAXAction; import org.lamsfoundation.lams.security.ISecurityService; +import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationGroup; import org.lamsfoundation.lams.usermanagement.OrganisationGrouping; +import org.lamsfoundation.lams.usermanagement.OrganisationType; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.OrganisationGroupingDTO; @@ -108,11 +110,20 @@ Integer userId = getUserDTO().getUserID(); Integer organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, true); Long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID, true); + Organisation organisation = null; if (organisationId == null) { + organisation = ((Lesson) getUserManagementService().findById(Lesson.class, lessonId)).getOrganisation(); // read organisation ID from lesson - organisationId = ((Lesson) getUserManagementService().findById(Lesson.class, lessonId)).getOrganisation() - .getOrganisationId(); + organisationId = organisation.getOrganisationId(); } + if (organisation == null) { + organisation = (Organisation) getUserManagementService().findById(Organisation.class, organisationId); + } + // get course groupings from top-leve course + if (OrganisationType.CLASS_TYPE.equals(organisation.getOrganisationType().getOrganisationTypeId())) { + organisation = organisation.getParentOrganisation(); + organisationId = organisation.getOrganisationId(); + } // check if user is allowed to view and edit groupings if (!getSecurityService().hasOrgRole(organisationId, userId,