Index: lams_central/src/java/org/lamsfoundation/lams/web/controller/LtiController.java
===================================================================
diff -u -re8258c12ef64821f5c4797d12a4d9d4bf99c8804 -rf7be4ba0bcbfca19280812b0df58b3413d9c7a91
--- lams_central/src/java/org/lamsfoundation/lams/web/controller/LtiController.java (.../LtiController.java) (revision e8258c12ef64821f5c4797d12a4d9d4bf99c8804)
+++ lams_central/src/java/org/lamsfoundation/lams/web/controller/LtiController.java (.../LtiController.java) (revision f7be4ba0bcbfca19280812b0df58b3413d9c7a91)
@@ -222,6 +222,8 @@
request.setAttribute(LtiUtils.CUSTOM_CONTEXT_MEMBERSHIPS_URL, customContextMembershipUrl);
request.setAttribute(CentralConstants.PARAM_TITLE, resourceLinkTitle);
request.setAttribute(CentralConstants.PARAM_DESC, resourceLinkDescription);
+ request.setAttribute(BasicLTIConstants.TOOL_CONSUMER_INFO_PRODUCT_FAMILY_CODE,
+ request.getParameter(BasicLTIConstants.TOOL_CONSUMER_INFO_PRODUCT_FAMILY_CODE));
//support for ContentItemSelectionRequest
String ltiMessageType = request.getParameter(BasicLTIConstants.LTI_MESSAGE_TYPE);
@@ -262,6 +264,7 @@
String ldIdStr = request.getParameter(CentralConstants.PARAM_LEARNING_DESIGN_ID);
String extCourseId = request.getParameter(BasicLTIConstants.CONTEXT_ID);
String customContextMembershipUrl = request.getParameter(LtiUtils.CUSTOM_CONTEXT_MEMBERSHIPS_URL);
+ String toolConsumerFamily = request.getParameter(BasicLTIConstants.TOOL_CONSUMER_INFO_PRODUCT_FAMILY_CODE);
Integer organisationId = WebUtil.readIntParam(request, CentralConstants.ATTR_COURSE_ID);
boolean enableLessonIntro = WebUtil.readBooleanParam(request, "enableLessonIntro", false);
@@ -304,9 +307,11 @@
* The real ID is only received when an user enters the lesson and only then we can create the mapping.
*
* BUT if there is another integration client which does not use deep linking and sends proper resource link ID
- * right away, then this may need adjusting.
+ * right away, then we use this link. Currently we are aware of desire2learn that uses this approach.
*/
- integrationService.createExtServerLessonMap(lessonId, extServer);
+ boolean useResourceLinkId = toolConsumerFamily == null
+ || !toolConsumerFamily.toLowerCase().contains("blackboard");
+ integrationService.createExtServerLessonMap(lessonId, useResourceLinkId ? resourceLinkId : null, extServer);
integrationService.addUsersUsingMembershipService(extServer, lessonId, extCourseId, resourceLinkId,
customContextMembershipUrl);
Index: lams_central/web/lti/addLesson.jsp
===================================================================
diff -u -reea06dbea86025e4cc6c2930775901931f60363b -rf7be4ba0bcbfca19280812b0df58b3413d9c7a91
--- lams_central/web/lti/addLesson.jsp (.../addLesson.jsp) (revision eea06dbea86025e4cc6c2930775901931f60363b)
+++ lams_central/web/lti/addLesson.jsp (.../addLesson.jsp) (revision f7be4ba0bcbfca19280812b0df58b3413d9c7a91)
@@ -177,6 +177,7 @@
+
<%-- ContentItemSelectionRequest items --%>