From 19c0c06214a5ca39c806d9bd4987170d61d793c5 Mon Sep 17 00:00:00 2001 From: uhensler <none@none> Date: Mon, 13 Nov 2017 12:22:17 +0100 Subject: [PATCH] OO-2981: Send no email address to card2brain if a user has no email address --- .../org/olat/course/nodes/basiclti/LTIRunController.java | 2 +- .../course/nodes/card2brain/Card2BrainRunController.java | 2 +- .../course/nodes/edubase/EdubaseViewerController.java | 2 +- src/main/java/org/olat/ims/lti/LTIManager.java | 2 +- .../java/org/olat/ims/lti/manager/LTIManagerImpl.java | 9 +++++++-- 5 files changed, 11 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 911c792b9f3..ade3b060882 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 8ec4ae1a004..cca982f6f9f 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 7a0ffe8f9b9..3ed615e1c24 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 e176cd307fc..346bf3a0a4a 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 05298290507..dc8263a0022 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()); -- GitLab