require_once $CFG->dirroot . '/blocks/moodletxt/dao/TxttoolsReceivedMessageDAO.php'; require_once $CFG->dirroot . '/blocks/moodletxt/dao/MoodletxtMoodleUserDAO.php'; require_once $CFG->dirroot . '/blocks/moodletxt/forms/renderers/InlineFormRenderer.php'; require_once $CFG->dirroot . '/blocks/moodletxt/forms/MoodletxtInboxControlForm.php'; require_once $CFG->dirroot . '/blocks/moodletxt/util/MoodletxtStringHelper.php'; $courseId = required_param('course', PARAM_INT); $instanceId = required_param('instance', PARAM_INT); $update = optional_param('update', 0, PARAM_INT); $download = optional_param('download', '', PARAM_ALPHA); require_login($courseId, false); $blockcontext = context_block::instance($instanceId); require_capability('block/moodletxt:receivemessages', $blockcontext, $USER->id); // OK, so you're legit. Let's load DAOs $txttoolsAccountDAO = new TxttoolsAccountDAO(); $receivedMessagesDAO = new TxttoolsReceivedMessageDAO(); $inboundFilterManager = new MoodletxtInboundFilterManager(); $userDAO = new MoodletxtMoodleUserDAO(); // Get user's inbox preferences $globalSourceConfig = get_config('moodletxt', 'Show_Inbound_Numbers'); $userConfig = $userDAO->getUserConfig($USER->id); $showInboundNumbers = $userConfig->getUserConfig('hideSources') == '0' && $globalSourceConfig == '1'; // Get tags and counts for user $tagList = $receivedMessagesDAO->getAllTagsForUser($USER->id); /* * Check to see if inbound messages should be fetched at this point. * This should only be used on-demand, or if the user cannot * set up XML Push */ $fetchErrors = array(); if ($update == 1 || get_config('moodletxt', 'Get_Inbound_On_View') == '1') { try {
require_once '../../config.php'; require_once $CFG->dirroot . '/blocks/moodletxt/lib/MoodletxtEncryption.php'; require_once $CFG->dirroot . '/blocks/moodletxt/connect/xml/MoodletxtXMLParser.php'; require_once $CFG->dirroot . '/blocks/moodletxt/dao/TxttoolsSentMessageDAO.php'; require_once $CFG->dirroot . '/blocks/moodletxt/dao/TxttoolsReceivedMessageDAO.php'; require_once $CFG->dirroot . '/blocks/moodletxt/inbound/MoodletxtInboundFilterManager.php'; // Read in POST variables $inPushUser = required_param('u', PARAM_ALPHANUM); $inPushPass = required_param('p', PARAM_ALPHANUM); $inPayload = required_param('x', PARAM_RAW); // Assuming we have the right params, set up for parsing $parser = new MoodletxtXMLParser(); $decrypter = new MoodletxtEncryption(); $sentMessagesDAO = new TxttoolsSentMessageDAO(); $receivedMessagesDAO = new TxttoolsReceivedMessageDAO(); $inboundFilterManager = new MoodletxtInboundFilterManager(); $key = get_config('moodletxt', 'EK'); $pushUsername = get_config('moodletxt', 'Push_Username'); $pushPassword = $decrypter->decrypt($key, get_config('moodletxt', 'Push_Password')); // Check credentials against those stored in Moodle if ($inPushUser === $pushUsername && $inPushPass === $pushPassword) { $parsedInboundMessages = array(); $parsedStatusUpdates = array(); try { $parsedObjects = $parser->parse($inPayload); } catch (Exception $ex) { // Invalid XML from remote system die; } if (is_array($parsedObjects)) { // Filter objects and save accordingly