Index: lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java,v diff -u -r1.17 -r1.18 --- lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java 16 Jun 2016 15:20:11 -0000 1.17 +++ lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java 11 Oct 2016 10:31:44 -0000 1.18 @@ -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; @@ -114,11 +116,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,