Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r1d1f0cbaa69f511980e95800288647d714258934 -ra32253e94b8d9935115008febdd3587e191fce10 Binary files differ Index: lams_central/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rf0f8be27b531db8008a87651d6d1e60d328973c5 -ra32253e94b8d9935115008febdd3587e191fce10 --- lams_central/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision f0f8be27b531db8008a87651d6d1e60d328973c5) +++ lams_central/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision a32253e94b8d9935115008febdd3587e191fce10) @@ -353,6 +353,7 @@ label.display.lesson.design =Display learning design image? index.remove.lesson.confirm1 =You are about to remove this lesson. Are you sure? index.remove.lesson.confirm2 =Once you remove this lesson you CANNOT bring it back. Are you positive that you want to remove this lesson? +error.lesson.not.accessible.for.learners =Sorry, this lesson is now disabled/archived. Contact your instructor for further details. #======= End labels: Exported 347 labels for en AU ===== Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java =================================================================== diff -u -r1b117caf4135f53248542cbc97d71aac448f3de9 -ra32253e94b8d9935115008febdd3587e191fce10 --- lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 1b117caf4135f53248542cbc97d71aac448f3de9) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision a32253e94b8d9935115008febdd3587e191fce10) @@ -190,6 +190,11 @@ } } + + //check lesson's state if its suitable for learner's access + if (!lesson.isLessonAccessibleForLearner()) { + return displayMessage(mapping, req, "error.lesson.not.accessible.for.learners"); + } if (mode != null) { req.setAttribute(AttributeNames.PARAM_MODE, mode); Index: lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java =================================================================== diff -u -ree6a40ada6ae3bea48ecdedc5cad0ce3e7a3f3d8 -ra32253e94b8d9935115008febdd3587e191fce10 --- lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision ee6a40ada6ae3bea48ecdedc5cad0ce3e7a3f3d8) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision a32253e94b8d9935115008febdd3587e191fce10) @@ -578,6 +578,14 @@ return (stateId != null && (stateId.equals(STARTED_STATE) || stateId.equals(FINISHED_STATE) || stateId.equals(ARCHIVED_STATE) || stateId.equals(REMOVED_STATE))); } + + /** + * Checks whether learners are allowed to access the lesson based on its state. As they can only access Started or + * Finished lessons. + */ + public boolean isLessonAccessibleForLearner() { + return (lessonStateId != null && (lessonStateId.equals(STARTED_STATE) || lessonStateId.equals(FINISHED_STATE))); + } public Set getGradebookUserLessons() { return gradebookUserLessons;