mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
MDL-39962 - Events: Replace lefacy event lti_unknown_service_api call.
This commit is contained in:
parent
d76a0eec39
commit
b97d94ffbb
95
mod/lti/classes/event/unknown_service_api_called.php
Normal file
95
mod/lti/classes/event/unknown_service_api_called.php
Normal file
@ -0,0 +1,95 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* This file contains an event for an unknown service API call.
|
||||
*
|
||||
* @package mod_lti
|
||||
* @copyright 2013 Adrian Greeve <adrian@moodle.com>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
namespace mod_lti\event;
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
/**
|
||||
* Event for when something happens with an unknown lti service API call.
|
||||
*
|
||||
* @package mod_lti
|
||||
* @copyright 2013 Adrian Greeve <adrian@moodle.com>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class unknown_service_api_called extends \core\event\base {
|
||||
|
||||
/** Old data to be used for the legacy event. */
|
||||
protected $legacydata;
|
||||
|
||||
/**
|
||||
* Set method for legacy data.
|
||||
*
|
||||
* @param stdClass $data legacy event data.
|
||||
*/
|
||||
public function set_legacy_data($data) {
|
||||
$this->legacydata = $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Init method.
|
||||
*/
|
||||
protected function init() {
|
||||
$this->data['objecttable'] = 'lti';
|
||||
$this->data['crud'] = 'r';
|
||||
$this->data['level'] = self::LEVEL_OTHER;
|
||||
$this->data['context'] = \context_system::instance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns localised description of what happened.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_description() {
|
||||
return 'An unknown call to a service api was made.';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns localised general event name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_name() {
|
||||
return get_string('ltiunknownserviceapicall', 'mod_lti');
|
||||
}
|
||||
|
||||
/**
|
||||
* Does this event replace a legacy event?
|
||||
*
|
||||
* @return null|string legacy event name
|
||||
*/
|
||||
public static function get_legacy_eventname() {
|
||||
return 'lti_unknown_service_api_call';
|
||||
}
|
||||
|
||||
/**
|
||||
* Legacy event data if get_legacy_eventname() is not empty.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
protected function get_legacy_eventdata() {
|
||||
return $this->legacydata;
|
||||
}
|
||||
|
||||
}
|
@ -237,6 +237,7 @@ $string['lti_launch_error_unsigned_help'] = ' <p>
|
||||
</p>';
|
||||
$string['lti_tool_request_added'] = 'Tool configuration request successfully submitted. You may need to contact an administrator to complete the tool configuration.';
|
||||
$string['lti_tool_request_existing'] = 'A tool configuration for the tool domain has already been submitted.';
|
||||
$string['ltiunknownserviceapicall'] = 'LTI unknown service API call.';
|
||||
$string['main_admin'] = 'General help';
|
||||
$string['main_admin_help'] = 'External tools allow Moodle users to seamlessly interact with learning resources hosted remotely. Through a special
|
||||
launch protocol, the remote tool will have access to some general information about the launching user. For example,
|
||||
|
@ -145,19 +145,23 @@ switch ($messagetype) {
|
||||
//Fire an event if we get a web service request which we don't support directly.
|
||||
//This will allow others to extend the LTI services, which I expect to be a common
|
||||
//use case, at least until the spec matures.
|
||||
$data = new stdClass();
|
||||
$data->body = $rawbody;
|
||||
$data->xml = $xml;
|
||||
$data->messagetype = $messagetype;
|
||||
$data->consumerkey = $consumerkey;
|
||||
$data->sharedsecret = $sharedsecret;
|
||||
// Please note that you will have to change $eventdata['other']['body'] into an xml
|
||||
// element in an event observer as done above.
|
||||
$eventdata = array();
|
||||
$eventdata['other'] = array();
|
||||
$eventdata['other']['body'] = $rawbody;
|
||||
$eventdata['other']['messagetype'] = $messagetype;
|
||||
$eventdata['other']['consumerkey'] = $consumerkey;
|
||||
$eventdata['other']['sharedsecret'] = $sharedsecret;
|
||||
|
||||
//If an event handler handles the web service, it should set this global to true
|
||||
//So this code knows whether to send an "operation not supported" or not.
|
||||
global $lti_web_service_handled;
|
||||
$lti_web_service_handled = false;
|
||||
|
||||
events_trigger('lti_unknown_service_api_call', $data);
|
||||
$event = \mod_lti\event\unknown_service_api_called::create($eventdata);
|
||||
$event->set_legacy_data($eventdata);
|
||||
$event->trigger();
|
||||
|
||||
if (!$lti_web_service_handled) {
|
||||
$responsexml = lti_get_response_xml(
|
||||
|
Loading…
x
Reference in New Issue
Block a user