// along with INTUITEL for Moodle Adaptor. If not, see <http://www.gnu.org/licenses/>. /** * REST interface. * * @package block_intuitel * @author Juan Pablo de Castro, Elena Verdú. * @copyright 2015 Intuitel Consortium * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ use intuitel\IntuitelXMLSerializer; use intuitel\Intuitel; use intuitel\ProtocolErrorException; use intuitel\IntuitelController; require_once dirname(dirname(dirname(__FILE__))) . '/config.php'; require_once 'locallib.php'; require_once 'model/exceptions.php'; require_once 'model/intuitelController.php'; block_intuitel_disable_moodle_page_exception_handler(); block_intuitel_check_access(); global $CFG; $xml = block_intuitel_get_input_message(); $intuitel_msg = IntuitelController::getIntuitelXML($xml); $lmsProfile = $intuitel_msg->LmsProfile; $mid = IntuitelXMLSerializer::get_required_attribute($lmsProfile, 'mId'); if (!isset($mid)) { throw new ProtocolErrorException("Bad LmsProfile request."); } $serializer = new IntuitelXMLSerializer(); $properties = Intuitel::getAdaptorInstance()->getLMSProfile(); header('Content-type: text/xml'); echo $serializer->serializeLMSProfile($mid, $properties);
require_once '../../model/intuitelLO.php'; //require_once('DumbIntuitel.php'); require_once 'SmartyIntuitel.php'; // test this with: http://localhost/moodle2/blocks/intuitel/tests/mockrest/intuitel.php?xml=%3CINTUITEL%3E%3CLearner%20uId=%22pepe%22/%3E%3C/INTUITEL%3E // http://localhost/moodle2/blocks/intuitel/tests/mockrest/intuitel.php?xml=%3CINTUITEL%3E%3CLearner%20uId=%22pepe%22%20loId=%22wqHKFQmiYXEq4tE6y4BztVFIdzsIe2d7localhost-CO2%22%20debugcourse=%222%22/%3E%3C/INTUITEL%3E // http://localhost/moodle2/blocks/intuitel/tests/mockrest/intuitel.php?debugresponse=true&userid=3&xml=%3CINTUITEL%3E%3CLearner%20uId=%22pepe%22%20loId=%22wqHKFQmiYXEq4tE6y4BztVFIdzsIe2d7localhost-CO2%22%20debugcourse=%222%22/%3E%3C/INTUITEL%3E // accept: debugcourse with native courseid to simulare Lore Loids // debugresponse to enable HTML page formating // userid to use native userid in the request. $debugresponse = optional_param('debugresponse', false, PARAM_ALPHANUM); if ($debugresponse == false) { block_intuitel_disable_moodle_page_exception_handler(); } $native_userid = optional_param('userid', null, PARAM_INTEGER); $query = block_intuitel_get_input_message(); $intuitelMsg = IntuitelController::getIntuitelXML($query); //sleep(4); if ($intuitelMsg->Learner) { if ($native_userid) { // Debugging backdoor $learnerid = Intuitel::getIDFactory()->getUserId($native_userid); } else { $learnerid = (string) $intuitelMsg->Learner['uId']; } $loId = new LOId((string) $intuitelMsg->Learner['loId']); $nativeCourseId = (string) $intuitelMsg->Learner['debugcourse']; $adaptor = Intuitel::getAdaptorInstanceForCourse(); $idFactory = Intuitel::getIdFactory(); if ($nativeCourseId) { global $PAGE; $context = context_course::instance($nativeCourseId);
require_once dirname(dirname(dirname(__FILE__))) . '/config.php'; require_once 'locallib.php'; require_once 'model/exceptions.php'; require_once 'model/intuitelController.php'; global $log; block_intuitel_disable_moodle_page_exception_handler(); if (!isset($_SESSION['user_validated'])) { block_intuitel_check_access(); } else { $log->LogDebug("Mapping request authenticated as:" . join(',', $_SESSION['user_ids_validated'])); } $params = array(); $serializer = new IntuitelXMLSerializer(); $xml = block_intuitel_get_input_message(); $log->LogDebug("loMapping Request: {$xml}"); $intuitel_elements = IntuitelController::getIntuitelXML($xml); $loMappings = IntuitelXMLSerializer::get_required_element($intuitel_elements, 'LoMapping'); $loMappingResults = array(); foreach ($loMappings as $loMapping) { $mid = IntuitelXMLSerializer::get_required_attribute($loMapping, 'mId'); if (isset($loMappingResults[$mid])) { throw new ProtocolErrorException("Duplicated message id: {$mid}"); } $params = $serializer->parse_mapping_request($loMapping); // support sending KVP for testing foreach ($_GET as $name => $value) { if ($name != 'xml' && $name != 'XDEBUG_SESSION_START') { $val = optional_param($name, null, PARAM_TEXT); if (isset($val)) { // CHECK if NULL is valid parameter $params[$name] = $val;
/** * Parse xml response and generate proper html to be inserted in a DIV in the user interface * @throws ProtocolErrorException if userId is not current user * * * @param string $xml * @return array(string,SimpleXMLElement) */ public static function ProcessUpdateLearnerRequest($xml, $courseid) { $intuitel_elements = IntuitelController::getIntuitelXML($xml); $learner = IntuitelXMLSerializer::get_required_element($intuitel_elements, 'Learner'); $user_id = IntuitelXMLSerializer::get_required_attribute($learner, 'uId'); $adaptor = Intuitel::getAdaptorInstanceForCourse(); $user = $adaptor->getNativeUserFromUId(new UserId($user_id)); global $USER; if ($USER->id != $user->id) { throw new AccessDeniedException("User {$user->id} is not current user"); } // Generate HTML for the TUG and LORE parts $html = $adaptor->generateHtmlForTugAndLore($intuitel_elements, $courseid); return array($html, $intuitel_elements); }