/**
  * Fetches all inbound messages for given accounts (normally triggered via cron)
  * @param TxttoolsAccount[] $txttoolsAccounts The accounts to check
  * @return MoodletxtInboundMessage[] Inbound messages found
  * @version 2015062901
  * @since 2010090301
  */
 public function getInboundMessages($txttoolsAccounts = array())
 {
     $responses = array();
     $lastUpdate = get_config('moodletxt', 'Inbound_Last_Update');
     foreach ($txttoolsAccounts as $account) {
         try {
             $requests = $this->XMLBuilder->buildInboundMessageRequest($account, 0, 'ALL', $lastUpdate);
             $response = $this->outboundConnector->sendData($requests, $account);
             $this->XMLParser->setTxttoolsAccountObject($account);
             // Needed to set destination account
             $responses = array_merge($responses, $this->XMLParser->parse($response));
         } catch (Exception $ex) {
             file_put_contents('C:\\moodle.log', time() . ': cron inbound poll failed for account (' . $account->getUsername() . '@' . $account->getUrl() . ') -> ' . $ex->getMessage(), FILE_APPEND);
         }
     }
     set_config('Inbound_Last_Update', time(), 'moodletxt');
     return $responses;
 }
Esempio n. 2
0
 * @license http://www.gnu.org/licenses/gpl.html GNU General Public Licence v3 (See code header for additional terms)
 * @version 2013052301
 * @since 2012101001
 */
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