Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== RCS file: /usr/local/cvsroot/lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java,v diff -u -r1.21 -r1.22 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java 2 Jul 2012 18:41:16 -0000 1.21 +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java 2 Jul 2012 19:05:30 -0000 1.22 @@ -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; }