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.9.2.9 -r1.9.2.10 --- lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java 17 Jun 2016 11:19:03 -0000 1.9.2.9 +++ lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupAction.java 11 Oct 2016 10:34:01 -0000 1.9.2.10 @@ -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,