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 911c792b9f3aca14f96b74f57758e96f28a9fae1..ade3b060882cc3f38a0d7cee4180cf79c807fdda 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java +++ b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java @@ -460,7 +460,7 @@ public class LTIRunController extends BasicController { container.contextPut("width", width); LTIContext context = new LTICourseNodeContext(courseEnv, courseNode, ltiRoles, sourcedId, backMapperUri, outcomeMapperUri, custom, target, width, height); - Map<String,String> unsignedProps = ltiManager.forgeLTIProperties(getIdentity(), getLocale(), context, sendname, sendmail); + Map<String,String> unsignedProps = ltiManager.forgeLTIProperties(getIdentity(), getLocale(), context, sendname, sendmail, true); Mapper contentMapper = new PostDataMapper(unsignedProps, url, oauth_consumer_key, oauth_secret, "true".equals(debug)); String mapperUri = registerMapper(ureq, contentMapper); diff --git a/src/main/java/org/olat/course/nodes/card2brain/Card2BrainRunController.java b/src/main/java/org/olat/course/nodes/card2brain/Card2BrainRunController.java index 8ec4ae1a004f9cc51f7ef01dec93371dea7be1da..cca982f6f9fdc2dab5344aec51f4c276e3bc16a0 100644 --- a/src/main/java/org/olat/course/nodes/card2brain/Card2BrainRunController.java +++ b/src/main/java/org/olat/course/nodes/card2brain/Card2BrainRunController.java @@ -84,7 +84,7 @@ public class Card2BrainRunController extends BasicController { LTIContext context = new Card2BrainContext(); Map<String, String> unsignedProps = ltiManager.forgeLTIProperties(getIdentity(), getLocale(), context, true, - true); + true, false); Mapper contentMapper = new PostDataMapper(unsignedProps, url, oauth_consumer_key, oauth_secret, false); diff --git a/src/main/java/org/olat/course/nodes/edubase/EdubaseViewerController.java b/src/main/java/org/olat/course/nodes/edubase/EdubaseViewerController.java index 7a0ffe8f9b9300ae392a4ac0f321e5e828481f97..3ed615e1c24f9a898b5bbdb298df33d52cf81e84 100644 --- a/src/main/java/org/olat/course/nodes/edubase/EdubaseViewerController.java +++ b/src/main/java/org/olat/course/nodes/edubase/EdubaseViewerController.java @@ -90,7 +90,7 @@ public class EdubaseViewerController extends BasicController { LTIContext context = new EdubaseContext(ureq.getUserSession().getIdentityEnvironment(), bookSection.getPageTo()); Map<String, String> unsignedProps = ltiManager.forgeLTIProperties(getIdentity(), getLocale(), context, true, - true); + true, false); Mapper contentMapper = new PostDataMapper(unsignedProps, launchUrl, baseUrl, oauthConsumerKey, oauthSecret, false); String mapperUri = registerMapper(ureq, contentMapper); diff --git a/src/main/java/org/olat/ims/lti/LTIManager.java b/src/main/java/org/olat/ims/lti/LTIManager.java index e176cd307fcdb735158ac3822d1b978c7096a050..346bf3a0a4a989028daee09e0e037b807b132bce 100644 --- a/src/main/java/org/olat/ims/lti/LTIManager.java +++ b/src/main/java/org/olat/ims/lti/LTIManager.java @@ -38,7 +38,7 @@ public interface LTIManager { public static final int EXPIRATION_TIME = 3600 * 24 * 30 * 6;//6 months public Map<String,String> forgeLTIProperties(Identity identity, Locale locale, - LTIContext context, boolean sendName, boolean sendEmail); + LTIContext context, boolean sendName, boolean sendEmail, boolean ensureEmail); public Map<String,String> sign(Map<String,String> props, String url, String oauthKey, String oauthSecret); diff --git a/src/main/java/org/olat/ims/lti/manager/LTIManagerImpl.java b/src/main/java/org/olat/ims/lti/manager/LTIManagerImpl.java index 052982905072c219ff7dc887bf9b1b60dd59722e..dc8263a0022487c8bea1699f40c4ca06de3ef478 100644 --- a/src/main/java/org/olat/ims/lti/manager/LTIManagerImpl.java +++ b/src/main/java/org/olat/ims/lti/manager/LTIManagerImpl.java @@ -163,13 +163,18 @@ public class LTIManagerImpl implements LTIManager { @Override public Map<String,String> forgeLTIProperties(Identity identity, Locale locale, LTIContext context, - boolean sendName, boolean sendEmail) { + boolean sendName, boolean sendEmail, boolean ensureEmail) { final Locale loc = locale; final Identity ident = identity; final User u = ident.getUser(); final String lastName = u.getProperty(UserConstants.LASTNAME, loc); final String firstName = u.getProperty(UserConstants.FIRSTNAME, loc); - final String email = userManager.getEnsuredEmail(u); + String email; + if (ensureEmail) { + email = userManager.getEnsuredEmail(u); + } else { + email = u.getProperty(UserConstants.EMAIL, loc); + } Map<String,String> props = new HashMap<>(); setProperty(props, "resource_link_id", context.getResourceId());