Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -r001ff203853bd361822cb59c21260cc971aeca4c -r9554872fdb9578657c1855fd78637d7444f8f69f --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 001ff203853bd361822cb59c21260cc971aeca4c) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 9554872fdb9578657c1855fd78637d7444f8f69f) @@ -724,17 +724,21 @@ */ @SuppressWarnings("unchecked") public ExcelCell[][] getCourseDataForExcel(Integer userId, Integer organisationId) { + Organisation organisation = (Organisation) baseDAO.find(Organisation.class, organisationId); + // The entire data list List rowList = new LinkedList(); User user = (User) getUserService().findById(User.class, userId); Set lessonsFromDB = new TreeSet(new LessonComparator()); lessonsFromDB.addAll(lessonService.getLessonsByGroupAndUser(userId, organisationId)); - - List lessons = new LinkedList(); + // Dont include lesson in list if the user doesnt have permission + Integer organisationToCheckPermission = (organisation.getParentOrganisation() == null) + ? organisation.getOrganisationId() : organisation.getParentOrganisation().getOrganisationId(); + List lessons = new LinkedList(); for (Lesson lesson : lessonsFromDB) { - if (!(lesson.getLessonClass().isStaffMember(user) || userService.isUserInRole(userId, organisationId, + if (!(lesson.getLessonClass().isStaffMember(user) || userService.isUserInRole(userId, organisationToCheckPermission, Role.GROUP_MANAGER))) { continue; }