/**
  * Delete context object.
  *
  * @param Context $context Context object
  *
  * @return boolean True if the Context object was successfully deleted
  */
 public function deleteContext($context)
 {
     // Delete any outstanding share keys for resource links for this context
     $sql = sprintf('DELETE sk ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_SHARE_KEY_TABLE_NAME . ' sk ' . "INNER JOIN {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' rl ON sk.resource_link_pk = rl.resource_link_pk ' . 'WHERE rl.context_pk = %d', $context->getRecordId());
     mysql_query($sql);
     // Delete any users in resource links for this context
     $sql = sprintf('DELETE u ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::USER_RESULT_TABLE_NAME . ' u ' . "INNER JOIN {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' rl ON u.resource_link_pk = rl.resource_link_pk ' . 'WHERE rl.context_pk = %d', $context->getRecordId());
     mysql_query($sql);
     // Update any resource links for which this consumer is acting as a primary resource link
     $sql = sprintf("UPDATE {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' prl ' . "INNER JOIN {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' rl ON prl.primary_resource_link_pk = rl.resource_link_pk ' . 'SET prl.primary_resource_link_pk = null, prl.share_approved = null ' . 'WHERE rl.context_pk = %d', $context->getRecordId());
     $ok = mysql_query($sql);
     // Delete any resource links for this consumer
     $sql = sprintf('DELETE rl ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' rl ' . 'WHERE rl.context_pk = %d', $context->getRecordId());
     mysql_query($sql);
     // Delete context
     $sql = sprintf('DELETE c ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::CONTEXT_TABLE_NAME . ' c ', 'WHERE c.context_pk = %d', $context->getRecordId());
     $ok = mysql_query($sql);
     if ($ok) {
         $context->initialize();
     }
     return $ok;
 }
Example #2
0
 /**
  * Delete context object.
  *
  * @param Context $context Context object
  * @return boolean True if the Context object was successfully deleted
  */
 public function deleteContext($context)
 {
     global $DB;
     $contextid = $context->getRecordId();
     $params = ['id' => $contextid];
     // Delete any outstanding share keys for resource links for this context.
     $where = "resourcelinkid IN (\n                    SELECT rl.id\n                      FROM {{$this->resourcelinktable}} rl\n                     WHERE rl.contextid = :id\n               )";
     $DB->delete_records_select($this->sharekeytable, $where, $params);
     // Delete any users in resource links for this context.
     $DB->delete_records_select($this->userresulttable, $where, $params);
     // Update any resource links for which this consumer is acting as a primary resource link.
     $where = "primaryresourcelinkid IN (\n                    SELECT rl.id\n                      FROM {{$this->resourcelinktable}} rl\n                     WHERE rl.contextid = :id\n               )";
     $updaterecords = $DB->get_records_select($this->resourcelinktable, $where, $params);
     foreach ($updaterecords as $record) {
         $record->primaryresourcelinkid = null;
         $record->shareapproved = null;
         $DB->update_record($this->resourcelinktable, $record);
     }
     // Delete any resource links for this context.
     $DB->delete_records($this->resourcelinktable, ['contextid' => $contextid]);
     // Delete context.
     $DB->delete_records($this->contexttable, $params);
     $context->initialize();
     return true;
 }
 /**
  * Delete context object.
  *
  * @param Context $context Context object
  *
  * @return boolean True if the Context object was successfully deleted
  */
 public function deleteContext($context)
 {
     $id = $context->getRecordId();
     // Delete any outstanding share keys for resource links for this context
     $sql = "DELETE FROM {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_SHARE_KEY_TABLE_NAME . ' ' . "WHERE EXISTS (SELECT * FROM {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' rl ' . "WHERE ({$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_SHARE_KEY_TABLE_NAME . '.resource_link_pk = rl.resource_link_pk) AND (rl.context_pk = :id))';
     $query = $this->db->prepare($sql);
     $query->bindValue('id', $id, PDO::PARAM_INT);
     $query->execute();
     // Delete any users in resource links for this context
     $sql = "DELETE FROM {$this->dbTableNamePrefix}" . DataConnector::USER_RESULT_TABLE_NAME . ' ' . "WHERE EXISTS (SELECT * FROM {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' rl ' . "WHERE ({$this->dbTableNamePrefix}" . DataConnector::USER_RESULT_TABLE_NAME . '.resource_link_pk = rl.resource_link_pk) AND (rl.context_pk = :id))';
     $query = $this->db->prepare($sql);
     $query->bindValue('id', $id, PDO::PARAM_INT);
     $query->execute();
     // Update any resource links for which this consumer is acting as a primary resource link
     $sql = "UPDATE {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' ' . 'SET primary_resource_link_pk = null, share_approved = null ' . "WHERE EXISTS (SELECT * FROM {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' rl ' . "WHERE ({$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . '.primary_resource_link_pk = rl.resource_link_pk) AND (rl.context_pk = :id))';
     $query = $this->db->prepare($sql);
     $query->bindValue('id', $id, PDO::PARAM_INT);
     $query->execute();
     // Delete any resource links for this consumer
     $sql = "DELETE FROM {$this->dbTableNamePrefix}" . DataConnector::RESOURCE_LINK_TABLE_NAME . ' ' . 'WHERE context_pk = :id';
     $query = $this->db->prepare($sql);
     $query->bindValue('id', $id, PDO::PARAM_INT);
     $query->execute();
     // Delete context
     $sql = "DELETE FROM {$this->dbTableNamePrefix}" . DataConnector::CONTEXT_TABLE_NAME . ' ' . 'WHERE context_pk = :id';
     $query = $this->db->prepare($sql);
     $query->bindValue('id', $id, PDO::PARAM_INT);
     $ok = $query->execute();
     if ($ok) {
         $context->initialize();
     }
     return $ok;
 }
Example #4
0
 /**
  * Delete context object.
  *
  * @param Context $context Context object
  *
  * @return boolean True if the Context object was successfully deleted
  */
 public function deleteContext($context)
 {
     $context->initialize();
     return true;
 }