Merge pull request #8921 from owncloud/fix-remove-storage-master

No need to create a storage within remove
remotes/origin/ldap_group_count
Thomas Müller 11 years ago
commit c053f27381
  1. 32
      lib/private/files/cache/storage.php

@ -43,12 +43,15 @@ class Storage {
}
}
/**
* @return string
*/
public function getNumericId() {
return $this->numericId;
}
/**
* @return string
* @return string|null
*/
public static function getStorageId($numericId) {
@ -62,37 +65,46 @@ class Storage {
}
/**
* @param string $storageId
* @return string|null
*/
public static function exists($storageId) {
public static function getNumericStorageId($storageId) {
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
$sql = 'SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?';
$result = \OC_DB::executeAudited($sql, array($storageId));
if ($row = $result->fetchRow()) {
return true;
return $row['numeric_id'];
} else {
return false;
return null;
}
}
/**
* @param string $storageId
* @return bool
*/
public static function exists($storageId) {
return !is_null(self::getNumericStorageId($storageId));
}
/**
* remove the entry for the storage
*
* @param string $storageId
*/
public static function remove($storageId) {
$storageCache = new Storage($storageId);
$numericId = $storageCache->getNumericId();
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
$sql = 'DELETE FROM `*PREFIX*storages` WHERE `id` = ?';
\OC_DB::executeAudited($sql, array($storageId));
$sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
\OC_DB::executeAudited($sql, array($numericId));
$numericId = self::exists($storageId);
if (!is_null($numericId)) {
$sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
\OC_DB::executeAudited($sql, array($numericId));
}
}
}

Loading…
Cancel
Save