aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/sharedstorage.php
diff options
context:
space:
mode:
authorMichael Gapczynski <GapczynskiM@gmail.com>2011-07-12 13:10:29 -0400
committerMichael Gapczynski <GapczynskiM@gmail.com>2011-07-12 13:10:29 -0400
commit6b303ee64b5c1b1e338c9bbf1b895d33b140985d (patch)
tree83878e2eeecedefe8eebd846e70ea7bc3f317d15 /apps/files_sharing/sharedstorage.php
parente202c299267549a88faf286e85899225616178a2 (diff)
downloadnextcloud-server-6b303ee64b5c1b1e338c9bbf1b895d33b140985d.tar.gz
nextcloud-server-6b303ee64b5c1b1e338c9bbf1b895d33b140985d.zip
Fix bug in opendir() and remove getStorageMountPoint(), now using datadir argument instead
Diffstat (limited to 'apps/files_sharing/sharedstorage.php')
-rw-r--r--apps/files_sharing/sharedstorage.php28
1 files changed, 12 insertions, 16 deletions
diff --git a/apps/files_sharing/sharedstorage.php b/apps/files_sharing/sharedstorage.php
index 3b678178c36..b0770cbfdba 100644
--- a/apps/files_sharing/sharedstorage.php
+++ b/apps/files_sharing/sharedstorage.php
@@ -29,11 +29,11 @@ OC_FILESYSTEM::registerStorageType('shared','OC_FILESTORAGE_SHARED',array('datad
*/
class OC_FILESTORAGE_SHARED extends OC_FILESTORAGE {
+ private $datadir;
private $sourcePaths = array();
- // TODO uh... I don't know what to do here
- public function __construct($parameters) {
-
+ public function __construct($arguments) {
+ $this->datadir = $arguments['datadir'];
}
public function getInternalPath($path) {
@@ -43,7 +43,7 @@ class OC_FILESTORAGE_SHARED extends OC_FILESTORAGE {
}
public function getSource($target) {
- $target = OC_FILESYSTEM::getStorageMountPoint($this).$target;
+ $target = $this->datadir.$target;
if (array_key_exists($target, $this->sourcePaths)) {
return $this->sourcePaths[$target];
} else {
@@ -59,8 +59,7 @@ class OC_FILESTORAGE_SHARED extends OC_FILESTORAGE {
} else {
$source = $this->getSource($path);
if ($source) {
- $target = OC_FILESYSTEM::getStorageMountPoint($this).$path;
- if (OC_SHARE::isWriteable($target)) {
+ if (OC_SHARE::isWriteable($this->datadir.$path)) {
$storage = OC_FILESYSTEM::getStorage($source);
return $storage->mkdir($this->getInternalPath($source));
}
@@ -70,16 +69,17 @@ class OC_FILESTORAGE_SHARED extends OC_FILESTORAGE {
public function rmdir($path) {
// The folder will be removed from the database, but won't be deleted from the owner's filesystem
- $target = OC_FILESYSTEM::getStorageMountPoint($this).$path;
- OC_SHARE::unshareFromSelf($target);
+ OC_SHARE::unshareFromSelf($this->datadir.$path);
}
+ // TODO Make sure new target is still in the current directory
public function opendir($path) {
if ($path == "" || $path == "/") {
global $FAKEDIRS;
$sharedItems = OC_SHARE::getItemsSharedWith();
foreach ($sharedItems as $item) {
- $files[] = $item['target'];
+ // TODO Implement a better fix
+ $files[] = substr($item['target'], strpos($item['target'], "Share") + 5);
}
$FAKEDIRS['shared'] = $files;
return opendir('fakedir://shared');
@@ -242,8 +242,7 @@ class OC_FILESTORAGE_SHARED extends OC_FILESTORAGE {
if ($path == "" || $path == "/") {
return true;
} else {
- $target = OC_FILESYSTEM::getStorageMountPoint($this).$path;
- return OC_SHARE::isWriteable($target);
+ return OC_SHARE::isWriteable($this->datadir.$path);
}
}
@@ -346,14 +345,11 @@ class OC_FILESTORAGE_SHARED extends OC_FILESTORAGE {
public function unlink($path) {
// The file will be removed from the database, but won't be deleted from the owner's filesystem
- $target = OC_FILESYSTEM::getStorageMountPoint($this).$path;
- OC_SHARE::unshareFromSelf($target);
+ OC_SHARE::unshareFromSelf($this->datadir.$path);
}
public function rename($path1, $path2) {
- $oldTarget = OC_FILESYSTEM::getStorageMountPoint($this).$path1;
- $newTarget = OC_FILESYSTEM::getStorageMountPoint($this).$path2;
- OC_SHARE::setTarget($oldTarget, $newTarget);
+ OC_SHARE::setTarget($this->datadir.$path1, $this->datadir.$path2);
}
public function copy($path1, $path2) {