From 92b60e36de8d89e8ea7c4781a8c5d5fa4371b7c3 Mon Sep 17 00:00:00 2001 From: Thomas Müller Date: Mon, 20 Apr 2015 14:25:39 +0200 Subject: Introduce Storage::getData() to allow storage implementations more control over the data array --- lib/private/files/cache/scanner.php | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'lib/private/files/cache') diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php index 0878b6c60a0..c1ba7c01461 100644 --- a/lib/private/files/cache/scanner.php +++ b/lib/private/files/cache/scanner.php @@ -109,17 +109,10 @@ class Scanner extends BasicEmitter { \OCP\Util::writeLog('OC\Files\Cache\Scanner', "!!! Path '$path' is not accessible or present !!!", \OCP\Util::DEBUG); return null; } - $data = array(); - $data['mimetype'] = $this->storage->getMimeType($path); - $data['mtime'] = $this->storage->filemtime($path); - if ($data['mimetype'] == 'httpd/unix-directory') { - $data['size'] = -1; //unknown - } else { - $data['size'] = $this->storage->filesize($path); - } - $data['etag'] = $this->storage->getETag($path); - $data['storage_mtime'] = $data['mtime']; + + $data = $this->storage->getData($path); $data['permissions'] = $permissions; + return $data; } -- cgit v1.2.3 From 23f1bdc3d4682dbb2e8d1a82921d62dbe0b213be Mon Sep 17 00:00:00 2001 From: Thomas Müller Date: Mon, 20 Apr 2015 14:54:54 +0200 Subject: Introduce Storage::getMetaData() to allow storage implementations more control over the data array --- lib/private/files/cache/scanner.php | 2 +- lib/private/files/storage/common.php | 2 +- lib/private/files/storage/storage.php | 4 ++-- lib/private/files/storage/wrapper/encryption.php | 6 +++--- lib/private/files/storage/wrapper/wrapper.php | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) (limited to 'lib/private/files/cache') diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php index c1ba7c01461..713dcda3ac3 100644 --- a/lib/private/files/cache/scanner.php +++ b/lib/private/files/cache/scanner.php @@ -110,7 +110,7 @@ class Scanner extends BasicEmitter { return null; } - $data = $this->storage->getData($path); + $data = $this->storage->getMetaData($path); $data['permissions'] = $permissions; return $data; diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index 0294fc4b5be..76678218054 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -584,7 +584,7 @@ abstract class Common implements Storage { /** * @inheritdoc */ - public function getData($path) { + public function getMetaData($path) { $data = []; $data['mimetype'] = $this->getMimeType($path); $data['mtime'] = $this->filemtime($path); diff --git a/lib/private/files/storage/storage.php b/lib/private/files/storage/storage.php index 9fda743afcf..07b5633c908 100644 --- a/lib/private/files/storage/storage.php +++ b/lib/private/files/storage/storage.php @@ -71,9 +71,9 @@ interface Storage extends \OCP\Files\Storage { public function getStorageCache(); /** - * @param $path + * @param string $path * @return array */ - public function getData($path); + public function getMetaData($path); } diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php index df91b7189dc..125e5f0f57e 100644 --- a/lib/private/files/storage/wrapper/encryption.php +++ b/lib/private/files/storage/wrapper/encryption.php @@ -111,11 +111,11 @@ class Encryption extends Wrapper { } /** - * @param $path + * @param string $path * @return array */ - public function getData($path) { - $data = $this->storage->getData($path); + public function getMetaData($path) { + $data = $this->storage->getMetaData($path); $fullPath = $this->getFullPath($path); if (isset($this->unencryptedSize[$fullPath])) { diff --git a/lib/private/files/storage/wrapper/wrapper.php b/lib/private/files/storage/wrapper/wrapper.php index 0bea457c877..f3dc09db138 100644 --- a/lib/private/files/storage/wrapper/wrapper.php +++ b/lib/private/files/storage/wrapper/wrapper.php @@ -527,10 +527,10 @@ class Wrapper implements \OC\Files\Storage\Storage { } /** - * @param $path + * @param string $path * @return array */ - public function getData($path) { - return $this->storage->getData($path); + public function getMetaData($path) { + return $this->storage->getMetaData($path); } } -- cgit v1.2.3 From 32995ace1c1ea453e08b1afd6f6d43cf68f2e3b1 Mon Sep 17 00:00:00 2001 From: Thomas Müller Date: Mon, 20 Apr 2015 16:50:12 +0200 Subject: move permission related code into getMetaData() --- lib/private/files/cache/scanner.php | 10 ++-------- lib/private/files/storage/common.php | 8 ++++++++ lib/private/files/storage/wrapper/encryption.php | 17 ++++++++++------- 3 files changed, 20 insertions(+), 15 deletions(-) (limited to 'lib/private/files/cache') diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php index 713dcda3ac3..d253afbfa1d 100644 --- a/lib/private/files/cache/scanner.php +++ b/lib/private/files/cache/scanner.php @@ -103,16 +103,10 @@ class Scanner extends BasicEmitter { * @return array an array of metadata of the file */ public function getData($path) { - $permissions = $this->storage->getPermissions($path); - if (!$permissions & \OCP\PERMISSION_READ) { - //cant read, nothing we can do + $data = $this->storage->getMetaData($path); + if (is_null($data)) { \OCP\Util::writeLog('OC\Files\Cache\Scanner', "!!! Path '$path' is not accessible or present !!!", \OCP\Util::DEBUG); - return null; } - - $data = $this->storage->getMetaData($path); - $data['permissions'] = $permissions; - return $data; } diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index 76678218054..06c61fe6931 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -585,6 +585,12 @@ abstract class Common implements Storage { * @inheritdoc */ public function getMetaData($path) { + $permissions = $this->getPermissions($path); + if (!$permissions & \OCP\Constants::PERMISSION_READ) { + //cant read, nothing we can do + return null; + } + $data = []; $data['mimetype'] = $this->getMimeType($path); $data['mtime'] = $this->filemtime($path); @@ -595,6 +601,8 @@ abstract class Common implements Storage { } $data['etag'] = $this->getETag($path); $data['storage_mtime'] = $data['mtime']; + $data['permissions'] = $this->getPermissions($path); + return $data; } } diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php index 125e5f0f57e..e5c96286f09 100644 --- a/lib/private/files/storage/wrapper/encryption.php +++ b/lib/private/files/storage/wrapper/encryption.php @@ -23,6 +23,8 @@ namespace OC\Files\Storage\Wrapper; use OC\Encryption\Exceptions\ModuleDoesNotExistsException; +use OC\Encryption\File; +use OC\Files\Filesystem; use OC\Files\Storage\LocalTempFileTrait; use OCP\Files\Mount\IMountPoint; @@ -48,7 +50,7 @@ class Encryption extends Wrapper { /** @var array */ private $unencryptedSize; - /** @var \OC\Encryption\File */ + /** @var File */ private $fileHelper; /** @var IMountPoint */ @@ -59,7 +61,7 @@ class Encryption extends Wrapper { * @param \OC\Encryption\Manager $encryptionManager * @param \OC\Encryption\Util $util * @param \OC\Log $logger - * @param \OC\Encryption\File $fileHelper + * @param File $fileHelper * @param string $uid user who perform the read/write operation (null for public access) */ public function __construct( @@ -67,7 +69,7 @@ class Encryption extends Wrapper { \OC\Encryption\Manager $encryptionManager = null, \OC\Encryption\Util $util = null, \OC\Log $logger = null, - \OC\Encryption\File $fileHelper = null, + File $fileHelper = null, $uid = null ) { @@ -116,13 +118,14 @@ class Encryption extends Wrapper { */ public function getMetaData($path) { $data = $this->storage->getMetaData($path); + if (is_null($data)) { + return null; + } $fullPath = $this->getFullPath($path); if (isset($this->unencryptedSize[$fullPath])) { - $size = $this->unencryptedSize[$fullPath]; - $data['encrypted'] = true; - $data['size'] = $size; + $data['size'] = $this->unencryptedSize[$fullPath]; } else { $info = $this->getCache()->get($path); if (isset($info['fileid']) && $info['encrypted']) { @@ -383,7 +386,7 @@ class Encryption extends Wrapper { * @return string full path including mount point */ protected function getFullPath($path) { - return \OC\Files\Filesystem::normalizePath($this->mountPoint . '/' . $path); + return Filesystem::normalizePath($this->mountPoint . '/' . $path); } /** -- cgit v1.2.3