[Pkg-owncloud-commits] [owncloud] 45/78: throw exception when backends don't provide a user instead of creating legacy local storages

David Prévot taffit at moszumanska.debian.org
Sun May 31 01:59:07 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 f7db588e62762545ef7fdfe5253ec18ca4bf00c8
Author: Jörn Friedrich Dreyer <jfd at butonic.de>
Date:   Thu Apr 2 11:05:14 2015 +0200

    throw exception when backends don't provide a user instead of creating legacy local storages
---
 lib/private/files/filesystem.php     | 62 ++++++++++++++++++------------------
 lib/private/user/nouserexception.php | 14 ++++++++
 2 files changed, 45 insertions(+), 31 deletions(-)

diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index 492d9f1..03fbe31 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -329,42 +329,42 @@ class Filesystem {
 
 		$userObject = \OC_User::getManager()->get($user);
 
-		if (!is_null($userObject)) {
-			$homeStorage = \OC_Config::getValue( 'objectstore' );
-			if (!empty($homeStorage)) {
-				// sanity checks
-				if (empty($homeStorage['class'])) {
-					\OCP\Util::writeLog('files', 'No class given for objectstore', \OCP\Util::ERROR);
-				}
-				if (!isset($homeStorage['arguments'])) {
-					$homeStorage['arguments'] = array();
-				}
-				// instantiate object store implementation
-				$homeStorage['arguments']['objectstore'] = new $homeStorage['class']($homeStorage['arguments']);
-				// mount with home object store implementation
-				$homeStorage['class'] = '\OC\Files\ObjectStore\HomeObjectStoreStorage';
-			} else {
-				$homeStorage = array(
-					//default home storage configuration:
-					'class' => '\OC\Files\Storage\Home',
-					'arguments' => array()
-				);
-			}
-			$homeStorage['arguments']['user'] = $userObject;
+		if (is_null($userObject)) {
+			\OCP\Util::writeLog('files', ' Backends provided no user object for '.$user, \OCP\Util::ERROR);
+			throw new \OC\User\NoUserException();
+		}
 
-			// check for legacy home id (<= 5.0.12)
-			if (\OC\Files\Cache\Storage::exists('local::' . $root . '/')) {
-				$homeStorage['arguments']['legacy'] = true;
+		$homeStorage = \OC_Config::getValue( 'objectstore' );
+		if (!empty($homeStorage)) {
+			// sanity checks
+			if (empty($homeStorage['class'])) {
+				\OCP\Util::writeLog('files', 'No class given for objectstore', \OCP\Util::ERROR);
 			}
-
-			self::mount($homeStorage['class'], $homeStorage['arguments'], $user);
-
-			$home = \OC\Files\Filesystem::getStorage($user);
+			if (!isset($homeStorage['arguments'])) {
+				$homeStorage['arguments'] = array();
+			}
+			// instantiate object store implementation
+			$homeStorage['arguments']['objectstore'] = new $homeStorage['class']($homeStorage['arguments']);
+			// mount with home object store implementation
+			$homeStorage['class'] = '\OC\Files\ObjectStore\HomeObjectStoreStorage';
+		} else {
+			$homeStorage = array(
+				//default home storage configuration:
+				'class' => '\OC\Files\Storage\Home',
+				'arguments' => array()
+			);
 		}
-		else {
-			self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user);
+		$homeStorage['arguments']['user'] = $userObject;
+
+		// check for legacy home id (<= 5.0.12)
+		if (\OC\Files\Cache\Storage::exists('local::' . $root . '/')) {
+			$homeStorage['arguments']['legacy'] = true;
 		}
 
+		self::mount($homeStorage['class'], $homeStorage['arguments'], $user);
+
+		$home = \OC\Files\Filesystem::getStorage($user);
+
 		self::mountCacheDir($user);
 
 		// Chance to mount for other storages
diff --git a/lib/private/user/nouserexception.php b/lib/private/user/nouserexception.php
new file mode 100644
index 0000000..9452362
--- /dev/null
+++ b/lib/private/user/nouserexception.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * ownCloud
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING-AGPL file.
+ *
+ * @author Jörn Friedrich Dreyer <jfd at owncloud.com>
+ * @copyright Jörn Friedrich Dreyer 2015
+ */
+
+namespace OC\User;
+
+class NoUserException extends \Exception {}
\ No newline at end of file

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