From: Robin Appelman Date: Wed, 22 Apr 2015 13:28:06 +0000 (+0200) Subject: use the permissions mask cache wrapper instead of the read only cache X-Git-Tag: v8.1.0beta1~105^2~3 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=03b7f1d015e8cd622ddd3a5a07f1afa31a293229;p=nextcloud-server.git use the permissions mask cache wrapper instead of the read only cache --- diff --git a/apps/files_sharing/lib/readonlywrapper.php b/apps/files_sharing/lib/readonlywrapper.php index 067000ff47c..a5d84f7f5a2 100644 --- a/apps/files_sharing/lib/readonlywrapper.php +++ b/apps/files_sharing/lib/readonlywrapper.php @@ -23,7 +23,9 @@ namespace OCA\Files_Sharing; +use OC\Files\Cache\Wrapper\CachePermissionsMask; use OC\Files\Storage\Wrapper\Wrapper; +use OCP\Constants; class ReadOnlyWrapper extends Wrapper { public function isUpdatable($path) { @@ -66,6 +68,7 @@ class ReadOnlyWrapper extends Wrapper { if (!$storage) { $storage = $this; } - return new ReadOnlyCache($storage); + $sourceCache = $this->storage->getCache($path, $storage); + return new CachePermissionsMask($sourceCache, Constants::PERMISSION_READ | Constants::PERMISSION_SHARE); } } diff --git a/apps/files_sharing/tests/readonlycache.php b/apps/files_sharing/tests/readonlycache.php deleted file mode 100644 index 5da200fa78f..00000000000 --- a/apps/files_sharing/tests/readonlycache.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * @copyright Copyright (c) 2015, 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 - * - */ -namespace OCA\Files_Sharing\Tests; - -class ReadOnlyCache extends TestCase { - - /** @var \OC\Files\Storage\Storage */ - protected $storage; - - /** @var \OC\Files\Storage\StorageFactory */ - protected $loader; - - /** @var \OC\Files\Mount\MountPoint */ - protected $readOnlyMount; - - /** @var \OCA\Files_Sharing\ReadOnlyWrapper */ - protected $readOnlyStorage; - - /** @var \OC\Files\Cache\Cache */ - protected $readOnlyCache; - - protected function setUp() { - parent::setUp(); - - $this->view->mkdir('readonly'); - $this->view->file_put_contents('readonly/foo.txt', 'foo'); - $this->view->file_put_contents('readonly/bar.txt', 'bar'); - - list($this->storage) = $this->view->resolvePath(''); - $this->loader = new \OC\Files\Storage\StorageFactory(); - $this->readOnlyMount = new \OC\Files\Mount\MountPoint($this->storage, - '/readonly', [[]], $this->loader); - $this->readOnlyStorage = $this->loader->getInstance($this->readOnlyMount, - '\OCA\Files_Sharing\ReadOnlyWrapper', ['storage' => $this->storage]); - - $this->readOnlyCache = $this->readOnlyStorage->getCache(); - } - - public function testSetup() { - $this->assertTrue($this->view->file_exists('/readonly/foo.txt')); - - $perms = $this->readOnlyStorage->getPermissions('files/readonly/foo.txt'); - $this->assertEquals(17, $perms); - - $this->assertFalse($this->readOnlyStorage->unlink('files/readonly/foo.txt')); - $this->assertTrue($this->readOnlyStorage->file_exists('files/readonly/foo.txt')); - - $this->assertInstanceOf('\OCA\Files_Sharing\ReadOnlyCache', $this->readOnlyCache); - } - - public function testGetWhenFileExists() { - $result = $this->readOnlyCache->get('files/readonly/foo.txt'); - $this->assertNotEmpty($result); - } - - public function testGetWhenFileDoesNotExist() { - $result = $this->readOnlyCache->get('files/readonly/proof does not exist.md'); - $this->assertFalse($result); - } - - public function testGetFolderContentsWhenFolderExists() { - $results = $this->readOnlyCache->getFolderContents('files/readonly'); - $this->assertNotEmpty($results); - - foreach ($results as $result) { - $this->assertNotEmpty($result); - } - } - - public function testGetFolderContentsWhenFolderDoesNotExist() { - $results = $this->readOnlyCache->getFolderContents('files/iamaghost'); - $this->assertEmpty($results); - } - -}