[Pkg-owncloud-commits] [owncloud] 251/457: Move the storage wrapping into a testable method

David Prévot taffit at moszumanska.debian.org
Sun Jun 28 20:06:17 UTC 2015


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

taffit pushed a commit to branch stable8
in repository owncloud.

commit 9a4040c7ca2c0e4fc3f213ba3f6144e80f687754
Author: Joas Schilling <nickvergessen at owncloud.com>
Date:   Tue Jun 2 12:27:30 2015 +0200

    Move the storage wrapping into a testable method
---
 lib/private/encryption/manager.php | 53 +++++++-------------------------------
 lib/private/encryption/util.php    | 49 +++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 43 deletions(-)

diff --git a/lib/private/encryption/manager.php b/lib/private/encryption/manager.php
index ecbb869..eeddea2 100644
--- a/lib/private/encryption/manager.php
+++ b/lib/private/encryption/manager.php
@@ -208,49 +208,16 @@ class Manager implements IManager {
 		return $this->config->getAppValue('core', 'default_encryption_module');
 	}
 
+	/**
+	 * Add storage wrapper
+	 */
 	public static function setupStorage() {
-		\OC\Files\Filesystem::addStorageWrapper('oc_encryption', function ($mountPoint, $storage, IMountPoint $mount) {
-			$parameters = [
-				'storage' => $storage,
-				'mountPoint' => $mountPoint,
-				'mount' => $mount];
-
-			if (!($storage instanceof Shared)) {
-				$manager = \OC::$server->getEncryptionManager();
-				$util = new Util(
-					new View(),
-					\OC::$server->getUserManager(),
-					\OC::$server->getGroupManager(),
-					\OC::$server->getConfig()
-				);
-				$user = \OC::$server->getUserSession()->getUser();
-				$logger = \OC::$server->getLogger();
-				$mountManager = Filesystem::getMountManager();
-				$uid = $user ? $user->getUID() : null;
-				$fileHelper = \OC::$server->getEncryptionFilesHelper();
-				$keyStorage = \OC::$server->getEncryptionKeyStorage();
-				$update = new Update(
-					new View(),
-					$util,
-					Filesystem::getMountManager(),
-					$manager,
-					$fileHelper,
-					$uid
-				);
-				return new Encryption(
-					$parameters,
-					$manager,
-					$util,
-					$logger,
-					$fileHelper,
-					$uid,
-					$keyStorage,
-					$update,
-					$mountManager
-				);
-			} else {
-				return $storage;
-			}
-		}, 2);
+		$util = new Util(
+			new View(),
+			\OC::$server->getUserManager(),
+			\OC::$server->getGroupManager(),
+			\OC::$server->getConfig()
+		);
+		\OC\Files\Filesystem::addStorageWrapper('oc_encryption', array($util, 'wrapStorage'), 2);
 	}
 }
diff --git a/lib/private/encryption/util.php b/lib/private/encryption/util.php
index b77672d..d233b71 100644
--- a/lib/private/encryption/util.php
+++ b/lib/private/encryption/util.php
@@ -26,8 +26,12 @@ use OC\Encryption\Exceptions\EncryptionHeaderKeyExistsException;
 use OC\Encryption\Exceptions\EncryptionHeaderToLargeException;
 use OC\Encryption\Exceptions\ModuleDoesNotExistsException;
 use OC\Files\Filesystem;
+use OC\Files\Storage\Shared;
+use OC\Files\Storage\Wrapper\Encryption;
 use OC\Files\View;
 use OCP\Encryption\IEncryptionModule;
+use OCP\Files\Mount\IMountPoint;
+use OCP\Files\Storage;
 use OCP\IConfig;
 
 class Util {
@@ -386,4 +390,49 @@ class Util {
 		return ($enabled === '1') ? true : false;
 	}
 
+	/**
+	 * Wraps the given storage when it is not a shared storage
+	 *
+	 * @param string $mountPoint
+	 * @param Storage $storage
+	 * @param IMountPoint $mount
+	 * @return Encryption|Storage
+	 */
+	public function wrapStorage($mountPoint, Storage $storage, IMountPoint $mount) {
+		$parameters = [
+			'storage' => $storage,
+			'mountPoint' => $mountPoint,
+			'mount' => $mount];
+
+		if (!($storage instanceof Shared)) {
+			$manager = \OC::$server->getEncryptionManager();
+			$user = \OC::$server->getUserSession()->getUser();
+			$logger = \OC::$server->getLogger();
+			$mountManager = Filesystem::getMountManager();
+			$uid = $user ? $user->getUID() : null;
+			$fileHelper = \OC::$server->getEncryptionFilesHelper();
+			$keyStorage = \OC::$server->getEncryptionKeyStorage();
+			$update = new Update(
+				new View(),
+				$this,
+				Filesystem::getMountManager(),
+				$manager,
+				$fileHelper,
+				$uid
+			);
+			return new Encryption(
+				$parameters,
+				$manager,
+				$this,
+				$logger,
+				$fileHelper,
+				$uid,
+				$keyStorage,
+				$update,
+				$mountManager
+			);
+		} else {
+			return $storage;
+		}
+	}
 }

-- 
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