Index: lams_admin/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r4248afaa041552a4c2d026140e1b1704e98d7ed1 -rd92b59deb4419e87265552c6ced3bda1f55ba97a --- lams_admin/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 4248afaa041552a4c2d026140e1b1704e98d7ed1) +++ lams_admin/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision d92b59deb4419e87265552c6ced3bda1f55ba97a) @@ -525,6 +525,7 @@ label.edit.tool.consumer =Edit tool consumer details label.add.tool.consumer =Add new tool consumer sysadmin.serversecret =Secret +sysadmin.lti.consumer.monitor.roles =Comma-separated list of monitor roles label.tool.consumers.count =LTI Tool Consumers(s) in total #======= End labels: Exported 515 labels for en AU ===== Index: lams_admin/conf/xdoclet/struts-forms.xml =================================================================== diff -u -rf0baac16e87a8029d100301ad9c5390244a9f725 -rd92b59deb4419e87265552c6ced3bda1f55ba97a --- lams_admin/conf/xdoclet/struts-forms.xml (.../struts-forms.xml) (revision f0baac16e87a8029d100301ad9c5390244a9f725) +++ lams_admin/conf/xdoclet/struts-forms.xml (.../struts-forms.xml) (revision d92b59deb4419e87265552c6ced3bda1f55ba97a) @@ -93,6 +93,7 @@ + Index: lams_admin/web/lti/ltiConsumer.jsp =================================================================== diff -u -r4248afaa041552a4c2d026140e1b1704e98d7ed1 -rd92b59deb4419e87265552c6ced3bda1f55ba97a --- lams_admin/web/lti/ltiConsumer.jsp (.../ltiConsumer.jsp) (revision 4248afaa041552a4c2d026140e1b1704e98d7ed1) +++ lams_admin/web/lti/ltiConsumer.jsp (.../ltiConsumer.jsp) (revision d92b59deb4419e87265552c6ced3bda1f55ba97a) @@ -88,6 +88,10 @@ : ${lessonFinishUrl} + + : + +
Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rf0baac16e87a8029d100301ad9c5390244a9f725 -rd92b59deb4419e87265552c6ced3bda1f55ba97a Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java =================================================================== diff -u -r667587ecbee72f1d275271b80481f9472929361f -rd92b59deb4419e87265552c6ced3bda1f55ba97a --- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java (.../LoginRequestLtiServlet.java) (revision 667587ecbee72f1d275271b80481f9472929361f) +++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java (.../LoginRequestLtiServlet.java) (revision d92b59deb4419e87265552c6ced3bda1f55ba97a) @@ -124,14 +124,15 @@ } ExtServerLessonMap lesson = integrationService.getLtiConsumerLesson(consumerKey, resourceLinkId); - //determine method based on role parameter + //Determine method based on role parameter. Monitor roles can be either LTI standard ones or tool consumer's custom ones set on a sysadmin page String method; - if (LtiUtils.isLearner(roles) && !LtiUtils.isStaff(roles) && !LtiUtils.isAdmin(roles)) { - method = LoginRequestDispatcher.METHOD_LEARNER_STRICT_AUTHENTICATION; - } else if (lesson == null) { - method = LoginRequestDispatcher.METHOD_AUTHOR; + boolean isCustomMonitorRole = LtiUtils.isToolConsumerCustomRole(roles, + extServer.getLtiToolConsumerMonitorRoles()); + if (LtiUtils.isStaff(roles) || LtiUtils.isAdmin(roles) || isCustomMonitorRole) { + method = (lesson == null) ? LoginRequestDispatcher.METHOD_AUTHOR : LoginRequestDispatcher.METHOD_MONITOR; + } else { - method = LoginRequestDispatcher.METHOD_MONITOR; + method = LoginRequestDispatcher.METHOD_LEARNER_STRICT_AUTHENTICATION; } //provide empty lessonId in case of learner accesses LTI link before teacher authored it Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServer.hbm.xml =================================================================== diff -u -rf0baac16e87a8029d100301ad9c5390244a9f725 -rd92b59deb4419e87265552c6ced3bda1f55ba97a --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServer.hbm.xml (.../ExtServer.hbm.xml) (revision f0baac16e87a8029d100301ad9c5390244a9f725) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServer.hbm.xml (.../ExtServer.hbm.xml) (revision d92b59deb4419e87265552c6ced3bda1f55ba97a) @@ -161,6 +161,16 @@ insert="true" column="time_to_live_login_request" /> + + rolesToSearchFor = Arrays.asList(toolConsumerCustomRoles.split(",")); + return hasRole(roles, rolesToSearchFor); + } /** * Return true if the user is a learner.