MDL-55358 mod_lti: Add group variable Moodle.Person.userGroupIds

This commit is contained in:
David Knuplesch
2017-09-08 11:00:52 +02:00
parent 3729ff0ff4
commit 3b3535c7ea
+21 -3
View File
@@ -373,7 +373,7 @@ function lti_build_sourcedid($instanceid, $userid, $servicesalt, $typeid = null,
* @return array Request details
*/
function lti_build_request($instance, $typeconfig, $course, $typeid = null, $islti2 = false) {
global $USER, $COURSE, $CFG;
global $USER, $CFG;
if (empty($instance->cmid)) {
$instance->cmid = 0;
@@ -385,7 +385,6 @@ function lti_build_request($instance, $typeconfig, $course, $typeid = null, $isl
'user_id' => $USER->id,
'lis_person_sourcedid' => $USER->idnumber,
'roles' => $role,
'groups' => implode(",", groups_get_user_groups($COURSE->id, $USER->id)[0]),
'context_id' => $course->id,
'context_label' => trim(html_to_text($course->shortname, 0)),
'context_title' => trim(html_to_text($course->fullname, 0)),
@@ -1248,6 +1247,8 @@ function lti_parse_custom_parameter($toolproxy, $tool, $params, $value, $islti2)
$value = str_replace('<br>' , ' ', $value);
$value = format_string($value);
}
} else {
$value = lti_calculate_custom_parameter($value1);
}
} else if ($islti2) {
$val = $value;
@@ -1266,6 +1267,23 @@ function lti_parse_custom_parameter($toolproxy, $tool, $params, $value, $islti2)
return $value;
}
/**
* Calculates the value of a custom parameter that has not been specified earlier
*
* @param string $value Custom parameter value
*
* @return string Calculated value of custom parameter
*/
function lti_calculate_custom_parameter($value) {
global $USER, $COURSE;
switch ($value) {
case 'Moodle.Person.userGroupIds':
return implode(",", groups_get_user_groups($COURSE->id, $USER->id)[0]);
}
return null;
}
/**
* Used for building the names of the different custom parameters
*
@@ -2556,7 +2574,7 @@ function lti_get_capabilities() {
'Membership.role' => 'roles',
'Result.sourcedId' => 'lis_result_sourcedid',
'Result.autocreate' => 'lis_outcome_service_url',
'Group.sourceId' => 'groups');
'Moodle.Person.userGroupIds' => null);
return $capabilities;