]> source.dussan.org Git - nextcloud-server.git/commitdiff
move permission related code into getMetaData()
authorThomas Müller <thomas.mueller@tmit.eu>
Mon, 20 Apr 2015 14:50:12 +0000 (16:50 +0200)
committerThomas Müller <thomas.mueller@tmit.eu>
Mon, 20 Apr 2015 14:50:12 +0000 (16:50 +0200)
lib/private/files/cache/scanner.php
lib/private/files/storage/common.php
lib/private/files/storage/wrapper/encryption.php

index 713dcda3ac3a0e25b50c1cb09bf947b9cfd0de2e..d253afbfa1d0ab1e7f291e6c6c4ce8f8c1e269cc 100644 (file)
@@ -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;
        }
 
index 7667821805446329b8b58cc0f97dae726767c3da..06c61fe69313fd98752c402ea0b3458fcaca4942 100644 (file)
@@ -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;
        }
 }
index 125e5f0f57e787ad84922503709b62d4b9965991..e5c96286f09be3246da540b03ad0625b9bedf381 100644 (file)
@@ -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);
        }
 
        /**