From 4526bc0ba6f23a2fae5f7372d9b7702736eb46f6 Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Mon, 30 Jun 2014 16:12:12 +0200
Subject: [PATCH] Handle StorageNotAvailableException in ajax/list.php

---
 apps/files/ajax/list.php | 64 +++++++++++++++++++++++-----------------
 1 file changed, 37 insertions(+), 27 deletions(-)

diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php
index bae3628402..b94d00ed8f 100644
--- a/apps/files/ajax/list.php
+++ b/apps/files/ajax/list.php
@@ -1,30 +1,40 @@
 <?php
 
-OCP\JSON::checkLoggedIn();
-\OC::$session->close();
-
-// Load the files
-$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
-$dir = \OC\Files\Filesystem::normalizePath($dir);
-$dirInfo = \OC\Files\Filesystem::getFileInfo($dir);
-if (!$dirInfo || !$dirInfo->getType() === 'dir') {
-	header("HTTP/1.0 404 Not Found");
-	exit();
+try {
+	OCP\JSON::checkLoggedIn();
+	\OC::$session->close();
+
+	// Load the files
+	$dir = isset($_GET['dir']) ? $_GET['dir'] : '';
+	$dir = \OC\Files\Filesystem::normalizePath($dir);
+	$dirInfo = \OC\Files\Filesystem::getFileInfo($dir);
+	if (!$dirInfo || !$dirInfo->getType() === 'dir') {
+		header("HTTP/1.0 404 Not Found");
+		exit();
+	}
+
+	$data = array();
+	$baseUrl = OCP\Util::linkTo('files', 'index.php') . '?dir=';
+
+	$permissions = $dirInfo->getPermissions();
+
+	$sortAttribute = isset($_GET['sort']) ? $_GET['sort'] : 'name';
+	$sortDirection = isset($_GET['sortdirection']) ? ($_GET['sortdirection'] === 'desc') : false;
+
+	// make filelist
+
+	$files = \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection);
+	$data['directory'] = $dir;
+	$data['files'] = \OCA\Files\Helper::formatFileInfos($files);
+	$data['permissions'] = $permissions;
+
+	OCP\JSON::success(array('data' => $data));
+} catch (\OCP\Files\StorageNotAvailableException $e) {
+	$l = OC_L10N::get('files');
+	OCP\JSON::error(array(
+		'data' => array(
+			'exception' => '\OCP\Files\StorageNotAvailableException',
+			'message' => $l->t('Storage not available')
+		)
+	));
 }
-
-$data = array();
-$baseUrl = OCP\Util::linkTo('files', 'index.php') . '?dir=';
-
-$permissions = $dirInfo->getPermissions();
-
-$sortAttribute = isset( $_GET['sort'] ) ? $_GET['sort'] : 'name';
-$sortDirection = isset( $_GET['sortdirection'] ) ? ($_GET['sortdirection'] === 'desc') : false;
-
-// make filelist
-$files = \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection);
-
-$data['directory'] = $dir;
-$data['files'] = \OCA\Files\Helper::formatFileInfos($files);
-$data['permissions'] = $permissions;
-
-OCP\JSON::success(array('data' => $data));
-- 
GitLab