From 499108e2cde153f902a16c33608564f47965bd9c Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Mon, 7 Oct 2019 08:35:17 +0200 Subject: [PATCH] OO-4290: Save LTI outcome only if user is participant --- .../course/nodes/basiclti/LTIRunController.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java index b1f335f5835..8a122195415 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java +++ b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java @@ -344,8 +344,9 @@ public class LTIRunController extends BasicController { startButton = LinkFactory.createButton("start", startPage, this); startButton.setPrimary(true); - Boolean assessable = config.getBooleanEntry(BasicLTICourseNode.CONFIG_KEY_HAS_SCORE_FIELD); - if(assessable != null && assessable.booleanValue()) { + boolean assessable = config.getBooleanSafe(BasicLTICourseNode.CONFIG_KEY_HAS_SCORE_FIELD, false) + && userCourseEnv.isParticipant(); + if(assessable) { startPage.contextPut("isassessable", assessable); Integer attempts = courseAssessmentService.getAttempts(courseNode, userCourseEnv); @@ -464,10 +465,13 @@ public class LTIRunController extends BasicController { String backMapperUrl = registerCacheableMapper(ureq, sourcedId + "_talkback", talkbackMapper); String backMapperUri = serverUri + backMapperUrl + "/"; - Mapper outcomeMapper = new CourseNodeOutcomeMapper(getIdentity(), courseResource, courseNode.getIdent(), - oauth_consumer_key, oauth_secret, sourcedId); - String outcomeMapperUrl = registerCacheableMapper(ureq, sourcedId, outcomeMapper, LTIManager.EXPIRATION_TIME); - String outcomeMapperUri = serverUri + outcomeMapperUrl + "/"; + String outcomeMapperUri = null; + if (userCourseEnv.isParticipant()) { + Mapper outcomeMapper = new CourseNodeOutcomeMapper(getIdentity(), courseResource, courseNode.getIdent(), + oauth_consumer_key, oauth_secret, sourcedId); + String outcomeMapperUrl = registerCacheableMapper(ureq, sourcedId, outcomeMapper, LTIManager.EXPIRATION_TIME); + outcomeMapperUri = serverUri + outcomeMapperUrl + "/"; + } boolean sendname = config.getBooleanSafe(LTIConfigForm.CONFIG_KEY_SENDNAME, false); boolean sendmail = config.getBooleanSafe(LTIConfigForm.CONFIG_KEY_SENDEMAIL, false); -- GitLab