mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
MDL-44902: Several additions to External Tool (LTI)
* LTI service related changes: ** Fixing exceptions in OAuth library. ** Added new launch option, Existing window: replaces entire page with the LTI object. ** The LTI tool ID used to perform the launch is now sent with the LTI launch parameters. This is sent back to Moodle on subsequent requests. ** Added $CFG->mod_lti_forcessl to force SSL on all LTI launches. ** Added new LTI launch parameter: tool_consumer_instance_name. Default value is site full name, but can be customized with $CFG->mod_lti_institution_name. ** The LTI grade service endpoints now set the affected user to the session. This was required for event listeners. ** Fix the grade deletion service. Was deleting the grade item instead of just the grade. ** Send error response when LTI instance does not accept grades and grades are being sent. ** Added a method for writing incoming LTI requests to disk for debugging. Disabled by default. * Changes for ltisource plugins: ** Can now to plug into backup/restore. ** Can now have settings.php files. ** Can now hook into the LTI launch and edit parameters. * Several grade changes: ** Added standard_grading_coursemodule_elements to LTI instance edit form. This means LTI instances can be configured with a grade. ** No longer assumes that grade is out of 100. ** Replaced modl/lti:grade capability with mod/lti:view. * JS on mod/lti/view.php for resizing the content object has been converted to YUI3. * Fixed misspellings in language file. * Added hooks for log post and view actions. * Bug fix for lti_get_url_thumbprint() when the URL is missing a schema.
This commit is contained in:
parent
f500ff4e52
commit
8fa50fdd34
23 changed files with 759 additions and 74 deletions
|
@ -34,6 +34,10 @@ use moodle\mod\lti as lti;
|
|||
|
||||
$rawbody = file_get_contents("php://input");
|
||||
|
||||
if (lti_should_log_request($rawbody)) {
|
||||
lti_log_request($rawbody);
|
||||
}
|
||||
|
||||
foreach (lti\OAuthUtil::get_headers() as $name => $value) {
|
||||
if ($name === 'Authorization') {
|
||||
// TODO: Switch to core oauthlib once implemented - MDL-30149
|
||||
|
@ -78,7 +82,12 @@ switch ($messagetype) {
|
|||
|
||||
$ltiinstance = $DB->get_record('lti', array('id' => $parsed->instanceid));
|
||||
|
||||
if (!lti_accepts_grades($ltiinstance)) {
|
||||
throw new Exception('Tool does not accept grades');
|
||||
}
|
||||
|
||||
lti_verify_sourcedid($ltiinstance, $parsed);
|
||||
lti_set_session_user($parsed->userid);
|
||||
|
||||
$gradestatus = lti_update_grade($ltiinstance, $parsed->userid, $parsed->launchid, $parsed->gradeval);
|
||||
|
||||
|
@ -98,6 +107,10 @@ switch ($messagetype) {
|
|||
|
||||
$ltiinstance = $DB->get_record('lti', array('id' => $parsed->instanceid));
|
||||
|
||||
if (!lti_accepts_grades($ltiinstance)) {
|
||||
throw new Exception('Tool does not accept grades');
|
||||
}
|
||||
|
||||
//Getting the grade requires the context is set
|
||||
$context = context_course::instance($ltiinstance->course);
|
||||
$PAGE->set_context($context);
|
||||
|
@ -127,7 +140,12 @@ switch ($messagetype) {
|
|||
|
||||
$ltiinstance = $DB->get_record('lti', array('id' => $parsed->instanceid));
|
||||
|
||||
if (!lti_accepts_grades($ltiinstance)) {
|
||||
throw new Exception('Tool does not accept grades');
|
||||
}
|
||||
|
||||
lti_verify_sourcedid($ltiinstance, $parsed);
|
||||
lti_set_session_user($parsed->userid);
|
||||
|
||||
$gradestatus = lti_delete_grade($ltiinstance, $parsed->userid);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue