diff options
author | Robin Appelman <icewind@owncloud.com> | 2016-01-19 12:04:34 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2016-01-29 14:50:52 +0100 |
commit | adbc5a0b41be84f741f8689fda98b9f89cfdf5f6 (patch) | |
tree | 30f6c3adc7b1fd796bb01b1b19822f8564529fe7 | |
parent | 8ad45dad38c2c502ac1fae48e4bc12ec3dcfd565 (diff) | |
download | nextcloud-server-adbc5a0b41be84f741f8689fda98b9f89cfdf5f6.tar.gz nextcloud-server-adbc5a0b41be84f741f8689fda98b9f89cfdf5f6.zip |
Fix invalid storages not showing in directory listing
-rw-r--r-- | apps/files_external/lib/failedcache.php | 126 | ||||
-rw-r--r-- | apps/files_external/lib/failedstorage.php | 5 |
2 files changed, 130 insertions, 1 deletions
diff --git a/apps/files_external/lib/failedcache.php b/apps/files_external/lib/failedcache.php new file mode 100644 index 00000000000..e646e4fe677 --- /dev/null +++ b/apps/files_external/lib/failedcache.php @@ -0,0 +1,126 @@ +<?php +/** + * @author Robin McCorkell <robin@mccorkell.me.uk> + * + * @copyright Copyright (c) 2016, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\Files_External\Lib; + +use OC\Files\Cache\CacheEntry; +use OCP\Files\Cache\ICache; + +/** + * Storage placeholder to represent a missing precondition, storage unavailable + */ +class FailedCache implements ICache { + + public function getNumericStorageId() { + return -1; + } + + public function get($file) { + if ($file === '') { + return new CacheEntry([ + 'fileid' => -1, + 'size' => 0, + 'mimetype' => 'httpd/unix-directory', + 'mimepart' => 'httpd', + 'permissions' => 0, + 'mtime' => time() + ]); + } else { + return false; + } + } + + public function getFolderContents($folder) { + return []; + } + + public function getFolderContentsById($fileId) { + return []; + } + + public function put($file, array $data) { + return; + } + + public function update($id, array $data) { + return; + } + + public function getId($file) { + return -1; + } + + public function getParentId($file) { + return -1; + } + + public function inCache($file) { + return false; + } + + public function remove($file) { + return; + } + + public function move($source, $target) { + return; + } + + public function moveFromCache(ICache $sourceCache, $sourcePath, $targetPath) { + return; + } + + public function clear() { + return; + } + + public function getStatus($file) { + return ICache::NOT_FOUND; + } + + public function search($pattern) { + return []; + } + + public function searchByMime($mimetype) { + return []; + } + + public function searchByTag($tag, $userId) { + return []; + } + + public function getAll() { + return []; + } + + public function getIncomplete() { + return []; + } + + public function getPathById($id) { + return null; + } + + public function normalize($path) { + return $path; + } +} diff --git a/apps/files_external/lib/failedstorage.php b/apps/files_external/lib/failedstorage.php index 95fe179f570..7bcbfc31902 100644 --- a/apps/files_external/lib/failedstorage.php +++ b/apps/files_external/lib/failedstorage.php @@ -174,7 +174,7 @@ class FailedStorage extends Common { } public function verifyPath($path, $fileName) { - throw new StorageNotAvailableException($this->e->getMessage(), $this->e->getCode(), $this->e); + return true; } public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { @@ -205,4 +205,7 @@ class FailedStorage extends Common { throw new StorageNotAvailableException($this->e->getMessage(), $this->e->getCode(), $this->e); } + public function getCache($path = '', $storage = null) { + return new FailedCache(); + } } |