From 627b6164c43e09b1d6e0e17d1e73815fa0e9e2b4 Mon Sep 17 00:00:00 2001
From: Bjoern Schiessle <schiessle@owncloud.com>
Date: Thu, 5 Sep 2013 10:08:13 +0200
Subject: [PATCH] if the files doesn't exist yet we start with the parent to
 search for shares

---
 lib/public/share.php | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/lib/public/share.php b/lib/public/share.php
index fe996dbe26..06d67ab4e0 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -134,19 +134,25 @@ class Share {
 	*       not '/admin/data/file.txt'
 	*/
 	public static function getUsersSharingFile($path, $user, $includeOwner = false) {
-
+		error_log("getuser sharing files for: " . $path . " and " . $user);
 		$shares = array();
 		$publicShare = false;
 		$source = -1;
 		$cache = false;
 
-		$view = new \OC\Files\View('/' . $user . '/files/');
-		$meta = $view->getFileInfo(\OC\Files\Filesystem::normalizePath($path));
+		$view = new \OC\Files\View('/' . $user . '/files');
+		if ($view->file_exists($path)) {
+			$meta = $view->getFileInfo($path);
+		} else {
+			// if the file doesn't exists yet we start with the parent folder
+			$meta = $view->getFileInfo(dirname($path));
+		}
 
 		if($meta !== false) {
+			error_log("source: " . $meta['fileid']);
 			$source = $meta['fileid'];
 			$cache = new \OC\Files\Cache\Cache($meta['storage']);
-		}
+		} else error_log("no source");
 
 		while ($source !== -1) {
 
@@ -165,6 +171,7 @@ class Share {
 				\OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR);
 			} else {
 				while ($row = $result->fetchRow()) {
+					error_log("add user: " . $row['share_with']);
 					$shares[] = $row['share_with'];
 				}
 			}
@@ -184,6 +191,7 @@ class Share {
 				\OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR);
 			} else {
 				while ($row = $result->fetchRow()) {
+					error_log("group found:  " . $row['share_with']);
 					$usersInGroup = \OC_Group::usersInGroup($row['share_with']);
 					$shares = array_merge($shares, $usersInGroup);
 				}
-- 
GitLab