diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-06-10 13:50:52 +0200 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2014-06-14 10:14:08 +0200 |
commit | c61f759a8b4f0091a978eb4e8da1354809d77f5e (patch) | |
tree | 52d02f68c27d9cb151714a87590ba0470514372a | |
parent | 790d51ea1efeb17c55870a5659a6f49e518d0ebe (diff) | |
download | nextcloud-server-c61f759a8b4f0091a978eb4e8da1354809d77f5e.tar.gz nextcloud-server-c61f759a8b4f0091a978eb4e8da1354809d77f5e.zip |
Fix check for shared files inside shares
-rw-r--r-- | apps/files_sharing/lib/sharedstorage.php | 3 | ||||
-rw-r--r-- | lib/private/share/share.php | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index 59de2dfa4c4..6760538f510 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -23,12 +23,13 @@ namespace OC\Files\Storage; use OC\Files\Filesystem; +use OCA\Files_Sharing\ISharedStorage; use OCA\Files_Sharing\SharedMount; /** * Convert target path to source path and pass the function call to the correct storage provider */ -class Shared extends \OC\Files\Storage\Common { +class Shared extends \OC\Files\Storage\Common implements ISharedStorage { private $share; // the shared resource private $files = array(); diff --git a/lib/private/share/share.php b/lib/private/share/share.php index 0a4d9a913e2..26108a937ce 100644 --- a/lib/private/share/share.php +++ b/lib/private/share/share.php @@ -508,9 +508,9 @@ class Share extends \OC\Share\Constants { if ($itemType === 'folder') { $path = '/' . $uidOwner . '/files' . \OC\Files\Filesystem::getPath($itemSource) . '/'; $mountManager = \OC\Files\Filesystem::getMountManager(); - $mounts = $mountManager->getAll(); - foreach ($mounts as $mountPoint => $mount) { - if ($mount->getStorage() instanceof \OCA\Files_Sharing\ISharedStorage && strpos($mountPoint, $path) === 0) { + $mounts = $mountManager->findIn($path); + foreach ($mounts as $mount) { + if ($mount->getStorage()->instanceOfStorage('\OCA\Files_Sharing\ISharedStorage')) { $message = 'Sharing "' . $itemSourceName . '" failed, because it contains files shared with you!'; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); |