From de58364eb850a918ed84df84983c620b31493606 Mon Sep 17 00:00:00 2001
From: Morris Jobke <hey@morrisjobke.de>
Date: Tue, 16 Feb 2016 18:45:25 +0100
Subject: [PATCH] Handles null as return code and uses proper UserFolder in
 trashbin

---
 apps/files_trashbin/lib/trashbin.php | 16 ++++++++++------
 lib/private/server.php               |  2 +-
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index c91cfe082fd..62d70d7356a 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -561,11 +561,12 @@ class Trashbin {
 	 * @return int available free space for trash bin
 	 */
 	private static function calculateFreeSpace($trashbinSize, $user) {
-		$config = \OC::$server->getConfig();
-
 		$softQuota = true;
-		$quota = \OC::$server->getUserManager()->get($user)->getQuota();
-		$view = new \OC\Files\View('/' . $user);
+		$userObject = \OC::$server->getUserManager()->get($user);
+		if(is_null($userObject)) {
+			return 0;
+		}
+		$quota = $userObject->getQuota();
 		if ($quota === null || $quota === 'none') {
 			$quota = \OC\Files\Filesystem::free_space('/');
 			$softQuota = false;
@@ -580,8 +581,11 @@ class Trashbin {
 		// calculate available space for trash bin
 		// subtract size of files and current trash bin size from quota
 		if ($softQuota) {
-			$rootInfo = $view->getFileInfo('/files/', false);
-			$free = $quota - $rootInfo['size']; // remaining free space for user
+			$userFolder = \OC::$server->getUserFolder($user);
+			if(is_null($userFolder)) {
+				return 0;
+			}
+			$free = $quota - $userFolder->getSize(); // remaining free space for user
 			if ($free > 0) {
 				$availableSpace = ($free * self::DEFAULTMAXSIZE / 100) - $trashbinSize; // how much space can be used for versions
 			} else {
diff --git a/lib/private/server.php b/lib/private/server.php
index b52c5188a7b..ef4764d07cf 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -730,7 +730,7 @@ class Server extends ServerContainer implements IServerContainer {
 	 * Returns a view to ownCloud's files folder
 	 *
 	 * @param string $userId user ID
-	 * @return \OCP\Files\Folder
+	 * @return \OCP\Files\Folder|null
 	 */
 	public function getUserFolder($userId = null) {
 		if ($userId === null) {
-- 
GitLab