if the files doesn't exist yet we start with the parent to search for shares

This commit is contained in:
Bjoern Schiessle 2013-09-05 10:08:13 +02:00
parent 93f4dec798
commit 627b6164c4
1 changed files with 12 additions and 4 deletions

View File

@ -134,19 +134,25 @@ class Share {
* not '/admin/data/file.txt' * not '/admin/data/file.txt'
*/ */
public static function getUsersSharingFile($path, $user, $includeOwner = false) { public static function getUsersSharingFile($path, $user, $includeOwner = false) {
error_log("getuser sharing files for: " . $path . " and " . $user);
$shares = array(); $shares = array();
$publicShare = false; $publicShare = false;
$source = -1; $source = -1;
$cache = false; $cache = false;
$view = new \OC\Files\View('/' . $user . '/files/'); $view = new \OC\Files\View('/' . $user . '/files');
$meta = $view->getFileInfo(\OC\Files\Filesystem::normalizePath($path)); 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) { if($meta !== false) {
error_log("source: " . $meta['fileid']);
$source = $meta['fileid']; $source = $meta['fileid'];
$cache = new \OC\Files\Cache\Cache($meta['storage']); $cache = new \OC\Files\Cache\Cache($meta['storage']);
} } else error_log("no source");
while ($source !== -1) { while ($source !== -1) {
@ -165,6 +171,7 @@ class Share {
\OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR);
} else { } else {
while ($row = $result->fetchRow()) { while ($row = $result->fetchRow()) {
error_log("add user: " . $row['share_with']);
$shares[] = $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); \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR);
} else { } else {
while ($row = $result->fetchRow()) { while ($row = $result->fetchRow()) {
error_log("group found: " . $row['share_with']);
$usersInGroup = \OC_Group::usersInGroup($row['share_with']); $usersInGroup = \OC_Group::usersInGroup($row['share_with']);
$shares = array_merge($shares, $usersInGroup); $shares = array_merge($shares, $usersInGroup);
} }