Example #1
0
 /**
  * Load tool consumer object.
  *
  * @param ToolConsumer $consumer ToolConsumer object
  *
  * @return boolean True if the tool consumer object was successfully loaded
  */
 public function loadToolConsumer($consumer)
 {
     $ok = false;
     if (!empty($consumer->getRecordId())) {
         $sql = 'SELECT consumer_pk, name, consumer_key256, consumer_key, secret, lti_version, ' . 'consumer_name, consumer_version, consumer_guid, ' . 'profile, tool_proxy, settings, protected, enabled, ' . 'enable_from, enable_until, last_access, created, updated ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::CONSUMER_TABLE_NAME . ' ' . 'WHERE consumer_pk = :id';
         $query = $this->db->prepare($sql);
         $id = $consumer->getRecordId();
         $query->bindValue('id', $id, PDO::PARAM_INT);
     } else {
         $sql = 'SELECT consumer_pk, name, consumer_key256, consumer_key, secret, lti_version, ' . 'consumer_name, consumer_version, consumer_guid, ' . 'profile, tool_proxy, settings, protected, enabled, ' . 'enable_from, enable_until, last_access, created, updated ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::CONSUMER_TABLE_NAME . ' ' . 'WHERE consumer_key256 = :key256';
         $query = $this->db->prepare($sql);
         $key256 = DataConnector::getConsumerKey($consumer->getKey());
         $query->bindValue('key256', $key256, PDO::PARAM_STR);
     }
     if ($query->execute()) {
         while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
             $row = array_change_key_case($row);
             if (empty($key256) || empty($row['consumer_key']) || $consumer->getKey() === $row['consumer_key']) {
                 $consumer->setRecordId(intval($row['consumer_pk']));
                 $consumer->name = $row['name'];
                 $consumer->setkey(empty($row['consumer_key']) ? $row['consumer_key256'] : $row['consumer_key']);
                 $consumer->secret = $row['secret'];
                 $consumer->ltiVersion = $row['lti_version'];
                 $consumer->consumerName = $row['consumer_name'];
                 $consumer->consumerVersion = $row['consumer_version'];
                 $consumer->consumerGuid = $row['consumer_guid'];
                 $consumer->profile = json_decode($row['profile']);
                 $consumer->toolProxy = $row['tool_proxy'];
                 $settings = unserialize($row['settings']);
                 if (!is_array($settings)) {
                     $settings = array();
                 }
                 $consumer->setSettings($settings);
                 $consumer->protected = intval($row['protected']) === 1;
                 $consumer->enabled = intval($row['enabled']) === 1;
                 $consumer->enableFrom = null;
                 if (!is_null($row['enable_from'])) {
                     $consumer->enableFrom = strtotime($row['enable_from']);
                 }
                 $consumer->enableUntil = null;
                 if (!is_null($row['enable_until'])) {
                     $consumer->enableUntil = strtotime($row['enable_until']);
                 }
                 $consumer->lastAccess = null;
                 if (!is_null($row['last_access'])) {
                     $consumer->lastAccess = strtotime($row['last_access']);
                 }
                 $consumer->created = strtotime($row['created']);
                 $consumer->updated = strtotime($row['updated']);
                 $ok = true;
                 break;
             }
         }
     }
     return $ok;
 }
 /**
  * Save tool consumer object.
  *
  * @param ToolConsumer $consumer Consumer object
  *
  * @return boolean True if the tool consumer object was successfully saved
  */
 public function saveToolConsumer($consumer)
 {
     $id = $consumer->getRecordId();
     $key = $consumer->getKey();
     $key256 = DataConnector::getConsumerKey($key);
     if ($key === $key256) {
         $key = null;
     }
     $protected = $consumer->protected ? 1 : 0;
     $enabled = $consumer->enabled ? 1 : 0;
     $profile = !empty($consumer->profile) ? json_encode($consumer->profile) : null;
     $settingsValue = serialize($consumer->getSettings());
     $time = time();
     $now = date("{$this->dateFormat} {$this->timeFormat}", $time);
     $from = null;
     if (!is_null($consumer->enableFrom)) {
         $from = date("{$this->dateFormat} {$this->timeFormat}", $consumer->enableFrom);
     }
     $until = null;
     if (!is_null($consumer->enableUntil)) {
         $until = date("{$this->dateFormat} {$this->timeFormat}", $consumer->enableUntil);
     }
     $last = null;
     if (!is_null($consumer->lastAccess)) {
         $last = date($this->dateFormat, $consumer->lastAccess);
     }
     if (empty($id)) {
         $sql = sprintf("INSERT INTO {$this->dbTableNamePrefix}" . DataConnector::CONSUMER_TABLE_NAME . ' (consumer_key256, consumer_key, name, ' . 'secret, lti_version, consumer_name, consumer_version, consumer_guid, profile, tool_proxy, settings, protected, enabled, ' . 'enable_from, enable_until, last_access, created, updated) ' . 'VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %d, %d, %s, %s, %s, %s, %s)', DataConnector::quoted($key256), DataConnector::quoted($key), DataConnector::quoted($consumer->name), DataConnector::quoted($consumer->secret), DataConnector::quoted($consumer->ltiVersion), DataConnector::quoted($consumer->consumerName), DataConnector::quoted($consumer->consumerVersion), DataConnector::quoted($consumer->consumerGuid), DataConnector::quoted($profile), DataConnector::quoted($consumer->toolProxy), DataConnector::quoted($settingsValue), $protected, $enabled, DataConnector::quoted($from), DataConnector::quoted($until), DataConnector::quoted($last), DataConnector::quoted($now), DataConnector::quoted($now));
     } else {
         $sql = sprintf("UPDATE {$this->dbTableNamePrefix}" . DataConnector::CONSUMER_TABLE_NAME . ' SET ' . 'consumer_key256 = %s, consumer_key = %s, ' . 'name = %s, secret= %s, lti_version = %s, consumer_name = %s, consumer_version = %s, consumer_guid = %s, ' . 'profile = %s, tool_proxy = %s, settings = %s, ' . 'protected = %d, enabled = %d, enable_from = %s, enable_until = %s, last_access = %s, updated = %s ' . 'WHERE consumer_pk = %d', DataConnector::quoted($key256), DataConnector::quoted($key), DataConnector::quoted($consumer->name), DataConnector::quoted($consumer->secret), DataConnector::quoted($consumer->ltiVersion), DataConnector::quoted($consumer->consumerName), DataConnector::quoted($consumer->consumerVersion), DataConnector::quoted($consumer->consumerGuid), DataConnector::quoted($profile), DataConnector::quoted($consumer->toolProxy), DataConnector::quoted($settingsValue), $protected, $enabled, DataConnector::quoted($from), DataConnector::quoted($until), DataConnector::quoted($last), DataConnector::quoted($now), $consumer->getRecordId());
     }
     $ok = mysql_query($sql);
     if ($ok) {
         if (empty($id)) {
             $consumer->setRecordId(mysql_insert_id());
             $consumer->created = $time;
         }
         $consumer->updated = $time;
     }
     return $ok;
 }
Example #3
0
 /**
  * Save tool consumer object.
  *
  * @param ToolConsumer $consumer Consumer object
  * @return boolean True if the tool consumer object was successfully saved
  */
 public function saveToolConsumer($consumer)
 {
     global $DB;
     $key = $consumer->getKey();
     $key256 = DataConnector::getConsumerKey($key);
     if ($key === $key256) {
         $key = null;
     }
     $protected = $consumer->protected ? 1 : 0;
     $enabled = $consumer->enabled ? 1 : 0;
     $profile = !empty($consumer->profile) ? json_encode($consumer->profile) : null;
     $settingsvalue = serialize($consumer->getSettings());
     $now = time();
     $consumer->updated = $now;
     $data = ['consumerkey256' => $key256, 'consumerkey' => $key, 'name' => $consumer->name, 'secret' => $consumer->secret, 'ltiversion' => $consumer->ltiVersion, 'consumername' => $consumer->consumerName, 'consumerversion' => $consumer->consumerVersion, 'consumerguid' => $consumer->consumerGuid, 'profile' => $profile, 'toolproxy' => $consumer->toolProxy, 'settings' => $settingsvalue, 'protected' => $protected, 'enabled' => $enabled, 'enablefrom' => $consumer->enableFrom, 'enableuntil' => $consumer->enableUntil, 'lastaccess' => $consumer->lastAccess, 'updated' => $consumer->updated];
     $id = $consumer->getRecordId();
     if (empty($id)) {
         $consumer->created = $now;
         $data['created'] = $consumer->created;
         $id = $DB->insert_record($this->consumertable, (object) $data);
         if ($id) {
             $consumer->setRecordId($id);
             return true;
         }
     } else {
         $data['id'] = $id;
         return $DB->update_record($this->consumertable, (object) $data);
     }
     return false;
 }