Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java =================================================================== diff -u -rb345765f54736d37da68498f53527511560eb0c5 -rb072d787da37f5d679699bd265216ad6397a7614 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision b345765f54736d37da68498f53527511560eb0c5) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision b072d787da37f5d679699bd265216ad6397a7614) @@ -501,10 +501,11 @@ String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = getSessionMap(request); int oldPageNumber = (Integer) sessionMap.get(AssessmentConstants.ATTR_PAGE_NUMBER); + boolean hasEditRight = (Boolean) sessionMap.get(AssessmentConstants.ATTR_HAS_EDIT_RIGHT); //if AnswersValidationFailed - get pageNumber as request parameter and as method parameter otherwise int pageNumberToOpen; - if (isAnswersValidationFailed) { + if (isAnswersValidationFailed && hasEditRight) { pageNumberToOpen = pageNumberWithUnasweredQuestions; } else { pageNumberToOpen = WebUtil.readIntParam(request, AssessmentConstants.ATTR_PAGE_NUMBER); @@ -526,10 +527,12 @@ return "pages/learning/results"; } else { - //get user answers from request and store them into sessionMap - storeUserAnswersIntoSessionMap(request, oldPageNumber); - // store results from sessionMap into DB - storeUserAnswersIntoDatabase(sessionMap, true); + if (hasEditRight) { + //get user answers from request and store them into sessionMap + storeUserAnswersIntoSessionMap(request, oldPageNumber); + // store results from sessionMap into DB + storeUserAnswersIntoDatabase(sessionMap, true); + } // use redirect to prevent form resubmission String redirectURL = "redirect:/pages/learning/learning.jsp";