Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java =================================================================== diff -u -r093df66baaeb89432c9e5a0351c8fb91cc4a13ac -rd0e01c78ed4b531b052fbd0f292100634bca9ad8 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java (.../MainExportServlet.java) (revision 093df66baaeb89432c9e5a0351c8fb91cc4a13ac) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java (.../MainExportServlet.java) (revision d0e01c78ed4b531b052fbd0f292100634bca9ad8) @@ -111,23 +111,21 @@ IExportPortfolioService exportService = ExportPortfolioServiceProxy.getExportPortfolioService(this .getServletContext()); ILessonService lessonService = ExportPortfolioServiceProxy.getLessonService(this.getServletContext()); - ISecurityService securityService = ExportPortfolioServiceProxy.getSecurityService(this - .getServletContext()); + ISecurityService securityService = ExportPortfolioServiceProxy.getSecurityService(this.getServletContext()); Lesson lesson = lessonService.getLesson(lessonID); + ToolAccessMode accessMode = ToolAccessMode.TEACHER.toString().equals(role) ? ToolAccessMode.TEACHER : null; if (mode.equals(ToolAccessMode.LEARNER.toString())) { - if (!lesson.getLearnerExportAvailable()) { - throw new ExportPortfolioException("Lesson with ID: " + lesson.getLessonId() - + " does not allow export portfolio for learners"); - } - ToolAccessMode accessMode = ToolAccessMode.TEACHER.toString().equals(role) ? ToolAccessMode.TEACHER : null; - if (accessMode == null) { - if (!securityService.isLessonLearner(lesson.getLessonId(), currentUserId, "export portfolio", - false)) { + if (!lesson.getLearnerExportAvailable()) { + throw new ExportPortfolioException("Lesson with ID: " + lesson.getLessonId() + + " does not allow export portfolio for learners"); + } + if (!securityService.isLessonLearner(lesson.getLessonId(), currentUserId, "export portfolio", false)) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "The user is not a learner in the lesson"); return; } + LearnerProgress learnerProgress = lessonService.getUserProgressForLesson(currentUserId, lesson.getLessonId()); if (learnerProgress == null || !learnerProgress.isComplete()) { @@ -136,12 +134,9 @@ response.sendError(HttpServletResponse.SC_FORBIDDEN, "The learner has not finished the lesson"); return; } - } else { - if (!securityService.isLessonMonitor(lesson.getLessonId(), currentUserId, "export portfolio", - false)) { - response.sendError(HttpServletResponse.SC_FORBIDDEN, "The user is not a learner in the lesson"); - return; - } + } else if (!securityService.isLessonMonitor(lesson.getLessonId(), currentUserId, "export portfolio", false)) { + response.sendError(HttpServletResponse.SC_FORBIDDEN, "The user is not a learner in the lesson"); + return; } portfolios = exportService.exportPortfolioForStudent(userIdParam == null ? currentUserId : userIdParam, @@ -155,7 +150,7 @@ response.sendError(HttpServletResponse.SC_FORBIDDEN, "The user is not a monitor in the lesson"); return; } - + // done in the monitoring environment portfolios = exportService.exportPortfolioForTeacher(lessonID, cookies); exportFilename = ExportPortfolioConstants.EXPORT_TEACHER_PREFIX + " " + portfolios.getLessonName() + ".zip";