Index: lams_central/src/java/org/lamsfoundation/lams/web/controller/LtiController.java =================================================================== diff -u -r87104ef92d7624f923876f19145b0b3495bf51fa -r9f6b6a7487f9b5cbf283bf95361e3778e93fde95 --- lams_central/src/java/org/lamsfoundation/lams/web/controller/LtiController.java (.../LtiController.java) (revision 87104ef92d7624f923876f19145b0b3495bf51fa) +++ lams_central/src/java/org/lamsfoundation/lams/web/controller/LtiController.java (.../LtiController.java) (revision 9f6b6a7487f9b5cbf283bf95361e3778e93fde95) @@ -477,7 +477,8 @@ request.setAttribute("title", lesson.getLessonName()); request.setAttribute("description", lesson.getLessonDescription()); request.setAttribute("isDisplayDesignImage", lesson.isDisplayDesignImage()); - boolean isMonitor = securityService.isLessonMonitor(lessonId, userId, "learner monitor", false); + // only teachers can see "Open monitor" link + boolean isMonitor = securityService.isLessonMonitor(lessonId, userId, null, false); request.setAttribute("isMonitor", isMonitor); //get learnerProgressDto Index: lams_common/src/java/org/lamsfoundation/lams/security/ISecurityService.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r9f6b6a7487f9b5cbf283bf95361e3778e93fde95 --- lams_common/src/java/org/lamsfoundation/lams/security/ISecurityService.java (.../ISecurityService.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_common/src/java/org/lamsfoundation/lams/security/ISecurityService.java (.../ISecurityService.java) (revision 9f6b6a7487f9b5cbf283bf95361e3778e93fde95) @@ -38,6 +38,11 @@ /** * Checks if the user is a monitor or owner of the given lesson, or a group manager of the organisation. + * + * @param lessonId + * @param userId + * @param action describes action that was requested and is used for logging. If this value is null, no logging will be done. + * @param escalate */ boolean isLessonMonitor(Long lessonId, Integer userId, String action, boolean escalate) throws SecurityException; Index: lams_common/src/java/org/lamsfoundation/lams/security/SecurityService.java =================================================================== diff -u -r2e0465b90f15f92e2f17490d2156f78bd959b4c6 -r9f6b6a7487f9b5cbf283bf95361e3778e93fde95 --- lams_common/src/java/org/lamsfoundation/lams/security/SecurityService.java (.../SecurityService.java) (revision 2e0465b90f15f92e2f17490d2156f78bd959b4c6) +++ lams_common/src/java/org/lamsfoundation/lams/security/SecurityService.java (.../SecurityService.java) (revision 9f6b6a7487f9b5cbf283bf95361e3778e93fde95) @@ -156,8 +156,11 @@ if (!hasGroupManagerRole && !(hasMonitorRole && securityDAO.isLessonMonitor(lessonId, userId, true))) { String error = "User " + userId + " is not monitor in lesson " + lessonId + " and can not \"" + action + "\""; - SecurityService.log.debug(error); - logEventService.logEvent(LogEvent.TYPE_ROLE_FAILURE, userId, userId, lessonId, null, error); + //no logging needed, if action parameter is empty + if (action != null) { + SecurityService.log.debug(error); + logEventService.logEvent(LogEvent.TYPE_ROLE_FAILURE, userId, userId, lessonId, null, error); + } if (escalate) { throw new SecurityException(error); } else {