From d18b9f6ea43b2a9b7bf9d2a71710edc67ec7f705 Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Tue, 18 Feb 2014 15:39:35 +0100
Subject: [PATCH] use a FileInfo object of the directory when generting the
 filelist

---
 apps/files/ajax/list.php         |  5 +++--
 apps/files/index.php             |  5 +++--
 apps/files/lib/helper.php        | 22 ----------------------
 lib/private/files/filesystem.php |  9 +--------
 4 files changed, 7 insertions(+), 34 deletions(-)

diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php
index 0be38c3b96..c8286bc15c 100644
--- a/apps/files/ajax/list.php
+++ b/apps/files/ajax/list.php
@@ -11,7 +11,8 @@ OCP\JSON::checkLoggedIn();
 // Load the files
 $dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
 $dir = \OC\Files\Filesystem::normalizePath($dir);
-if (!\OC\Files\Filesystem::is_dir($dir . '/')) {
+$dirInfo = \OC\Files\Filesystem::getFileInfo($dir);
+if (!$dirInfo->getType() === 'dir') {
 	header("HTTP/1.0 404 Not Found");
 	exit();
 }
@@ -20,7 +21,7 @@ $doBreadcrumb = isset($_GET['breadcrumb']);
 $data = array();
 $baseUrl = OCP\Util::linkTo('files', 'index.php') . '?dir=';
 
-$permissions = \OCA\Files\Helper::getDirPermissions($dir);
+$permissions = $dirInfo->getPermissions();
 
 // Make breadcrumb
 if($doBreadcrumb) {
diff --git a/apps/files/index.php b/apps/files/index.php
index dd63f29bc2..f8f1618e78 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -37,8 +37,9 @@ OCP\App::setActiveNavigationEntry('files_index');
 // Load the files
 $dir = isset($_GET['dir']) ? stripslashes($_GET['dir']) : '';
 $dir = \OC\Files\Filesystem::normalizePath($dir);
+$dirInfo = \OC\Files\Filesystem::getFileInfo($dir);
 // Redirect if directory does not exist
-if (!\OC\Files\Filesystem::is_dir($dir . '/')) {
+if (!$dirInfo->getType() === 'dir') {
 	header('Location: ' . OCP\Util::getScriptName() . '');
 	exit();
 }
@@ -92,7 +93,7 @@ $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '');
 $breadcrumbNav->assign('breadcrumb', $breadcrumb);
 $breadcrumbNav->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=');
 
-$permissions = \OCA\Files\Helper::getDirPermissions($dir);
+$permissions = $dirInfo->getPermissions();
 
 if ($needUpgrade) {
 	OCP\Util::addscript('files', 'upgrade');
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index 01fc65d76b..ac8a2ad320 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -112,26 +112,4 @@ class Helper
 		}
 		return $breadcrumb;
 	}
-
-	/**
-	 * Returns the numeric permissions for the given directory.
-	 * @param string $dir directory without trailing slash
-	 * @return numeric permissions
-	 */
-	public static function getDirPermissions($dir){
-		$permissions = \OCP\PERMISSION_READ;
-		if (\OC\Files\Filesystem::isCreatable($dir . '/')) {
-			$permissions |= \OCP\PERMISSION_CREATE;
-		}
-		if (\OC\Files\Filesystem::isUpdatable($dir . '/')) {
-			$permissions |= \OCP\PERMISSION_UPDATE;
-		}
-		if (\OC\Files\Filesystem::isDeletable($dir . '/')) {
-			$permissions |= \OCP\PERMISSION_DELETE;
-		}
-		if (\OC\Files\Filesystem::isSharable($dir . '/')) {
-			$permissions |= \OCP\PERMISSION_SHARE;
-		}
-		return $permissions;
-	}
 }
diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index a83e9aa86d..aa7f632c5f 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -727,14 +727,7 @@ class Filesystem {
 	 * @param string $path
 	 * @param boolean $includeMountPoints whether to add mountpoint sizes,
 	 * defaults to true
-	 * @return array
-	 *
-	 * returns an associative array with the following keys:
-	 * - size
-	 * - mtime
-	 * - mimetype
-	 * - encrypted
-	 * - versioned
+	 * @return \OC\Files\FileInfo
 	 */
 	public static function getFileInfo($path, $includeMountPoints = true) {
 		return self::$defaultInstance->getFileInfo($path, $includeMountPoints);
-- 
GitLab