[Pkg-owncloud-commits] [owncloud] 46/90: Use source storage permissions when scanning shared storage

David Prévot taffit at moszumanska.debian.org
Fri Feb 6 21:10:50 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit d534f262aaa21773df5a55099e0d95d2d96434e2
Author: Vincent Petry <pvince81 at owncloud.com>
Date:   Wed Jan 14 12:35:24 2015 +0100

    Use source storage permissions when scanning shared storage
---
 apps/files_sharing/appinfo/app.php       |  1 +
 apps/files_sharing/lib/scanner.php       | 45 ++++++++++++++++++++++++++++++++
 apps/files_sharing/lib/sharedstorage.php |  2 +-
 3 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index ec42952..059682b 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -4,6 +4,7 @@ $l = OC_L10N::get('files_sharing');
 OC::$CLASSPATH['OC_Share_Backend_File'] = 'files_sharing/lib/share/file.php';
 OC::$CLASSPATH['OC_Share_Backend_Folder'] = 'files_sharing/lib/share/folder.php';
 OC::$CLASSPATH['OC\Files\Storage\Shared'] = 'files_sharing/lib/sharedstorage.php';
+OC::$CLASSPATH['OC\Files\Cache\SharedScanner'] = 'files_sharing/lib/scanner.php';
 OC::$CLASSPATH['OC\Files\Cache\Shared_Cache'] = 'files_sharing/lib/cache.php';
 OC::$CLASSPATH['OC\Files\Cache\Shared_Permissions'] = 'files_sharing/lib/permissions.php';
 OC::$CLASSPATH['OC\Files\Cache\Shared_Updater'] = 'files_sharing/lib/updater.php';
diff --git a/apps/files_sharing/lib/scanner.php b/apps/files_sharing/lib/scanner.php
new file mode 100644
index 0000000..48c1ae9
--- /dev/null
+++ b/apps/files_sharing/lib/scanner.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Vincent Petry
+ * @copyright 2015 Vincent Petry <pvince81 at owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library 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 along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+namespace OC\Files\Cache;
+
+/**
+ * Scanner for SharedStorage
+ */
+class SharedScanner extends Scanner {
+
+	/**
+	 * Returns metadata from the shared storage, but
+	 * with permissions from the source storage.
+	 *
+	 * @param string $path path of the file for which to retrieve metadata
+	 *
+	 * @return array an array of metadata of the file
+	 */
+	public function getData($path){
+		$data = parent::getData($path);
+		$sourcePath = $this->storage->getSourcePath($path);
+		list($sourceStorage, $internalPath) = \OC\Files\Filesystem::resolvePath($sourcePath);
+		$data['permissions'] = $sourceStorage->getPermissions($internalPath);
+		return $data;
+	}
+}
+
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index 4e0805c..7e7a677 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -500,7 +500,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
 		if (!$storage) {
 			$storage = $this;
 		}
-		return new \OC\Files\Cache\Scanner($storage);
+		return new \OC\Files\Cache\SharedScanner($storage);
 	}
 
 	public function getWatcher($path = '', $storage = null) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list