From: Robin Appelman Date: Wed, 1 Apr 2015 13:15:24 +0000 (+0200) Subject: reuse cache move logic X-Git-Tag: v8.1.0alpha1~19^2~5 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=caadc8cdd9044236388dfb557ba21a5de7f147fc;p=nextcloud-server.git reuse cache move logic --- diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php index fd4c5715a67..ee9da231090 100644 --- a/lib/private/files/cache/cache.php +++ b/lib/private/files/cache/cache.php @@ -435,32 +435,7 @@ class Cache { * @param string $target */ public function move($source, $target) { - // normalize source and target - $source = $this->normalize($source); - $target = $this->normalize($target); - - $sourceData = $this->get($source); - $sourceId = $sourceData['fileid']; - $newParentId = $this->getParentId($target); - - if ($sourceData['mimetype'] === 'httpd/unix-directory') { - //find all child entries - $sql = 'SELECT `path`, `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path` LIKE ?'; - $result = \OC_DB::executeAudited($sql, array($this->getNumericStorageId(), $source . '/%')); - $childEntries = $result->fetchAll(); - $sourceLength = strlen($source); - \OC_DB::beginTransaction(); - $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ? WHERE `fileid` = ?'); - - foreach ($childEntries as $child) { - $targetPath = $target . substr($child['path'], $sourceLength); - \OC_DB::executeAudited($query, array($targetPath, md5($targetPath), $child['fileid'])); - } - \OC_DB::commit(); - } - - $sql = 'UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `name` = ?, `parent` =? WHERE `fileid` = ?'; - \OC_DB::executeAudited($sql, array($target, md5($target), basename($target), $newParentId, $sourceId)); + $this->moveFromCache($this, $source, $target); } /**