Пример #1
0
 /**
  * Delete the resource link from the database
  *
  * @param LTI_Resource_Link $resource_link
  * @return bool
  */
 public function Resource_Link_delete($resource_link)
 {
     $key = $resource_link->getKey();
     $id = $resource_link->getId();
     // Delete any outstanding share keys for resource links for this consumer
     $sql = 'DELETE FROM ' . $this->dbTableNamePrefix . LTI_Data_Connector::RESOURCE_LINK_SHARE_KEY_TABLE_NAME . ' ' . 'WHERE (primary_consumer_key = :key) AND (primary_context_id = :id)';
     $query = $this->db->prepare($sql);
     $query->bindValue('key', $key, PDO::PARAM_STR);
     $query->bindValue('id', $id, PDO::PARAM_STR);
     $ok = $query->execute();
     // Delete users
     if ($ok) {
         $sql = 'DELETE FROM ' . $this->dbTableNamePrefix . LTI_Data_Connector::USER_TABLE_NAME . ' ' . 'WHERE (consumer_key = :key) AND (context_id = :id)';
         $query = $this->db->prepare($sql);
         $query->bindValue('key', $key, PDO::PARAM_STR);
         $query->bindValue('id', $id, PDO::PARAM_STR);
         $ok = $query->execute();
     }
     // Update any resource links for which this is the primary resource link
     if ($ok) {
         $sql = 'UPDATE ' . $this->dbTableNamePrefix . LTI_Data_Connector::RESOURCE_LINK_TABLE_NAME . ' ' . 'SET primary_consumer_key = NULL AND primary_context_id = NULL ' . 'WHERE (consumer_key = :key) AND (context_id = :id)';
         $query = $this->db->prepare($sql);
         $query->bindValue('key', $key, PDO::PARAM_STR);
         $query->bindValue('id', $id, PDO::PARAM_STR);
         $ok = $query->execute();
     }
     // Delete resource link
     if ($ok) {
         $sql = 'DELETE FROM ' . $this->dbTableNamePrefix . LTI_Data_Connector::RESOURCE_LINK_TABLE_NAME . ' ' . 'WHERE (consumer_key = :key) AND (context_id = :id)';
         $query = $this->db->prepare($sql);
         $query->bindValue('key', $key, PDO::PARAM_STR);
         $query->bindValue('id', $id, PDO::PARAM_STR);
         $ok = $query->execute();
     }
     if ($ok) {
         $resource_link->initialise();
     }
     return $ok;
 }