Index: lams_build/lib/lams/lams.jar
===================================================================
RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams.jar,v
diff -u -r1.503 -r1.504
Binary files differ
Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java,v
diff -u -r1.2 -r1.3
--- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java 23 Sep 2016 04:25:14 -0000 1.2
+++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java 25 Nov 2016 15:25:33 -0000 1.3
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServer.hbm.xml,v
diff -u -r1.1 -r1.2
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServer.hbm.xml 22 Sep 2016 14:39:27 -0000 1.1
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServer.hbm.xml 25 Nov 2016 15:25:15 -0000 1.2
@@ -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.