summaryrefslogtreecommitdiffstats
path: root/apps/dav
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2018-07-17 17:28:02 +0200
committerRobin Appelman <robin@icewind.nl>2018-07-18 14:42:39 +0200
commitd4a51447d1b6858f2e8dae12cb2d38c2e2fa5e6b (patch)
tree9938ac20c394f96200c3bf6ca17601d65c503cdb /apps/dav
parentad9b458c7437e20be7d5a93ce383effe354bfeba (diff)
downloadnextcloud-server-d4a51447d1b6858f2e8dae12cb2d38c2e2fa5e6b.tar.gz
nextcloud-server-d4a51447d1b6858f2e8dae12cb2d38c2e2fa5e6b.zip
Fix getting ocs share permissions if a storage is not available
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'apps/dav')
-rw-r--r--apps/dav/lib/Connector/Sabre/Node.php13
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/NodeTest.php3
2 files changed, 10 insertions, 6 deletions
diff --git a/apps/dav/lib/Connector/Sabre/Node.php b/apps/dav/lib/Connector/Sabre/Node.php
index 9e78d21a39d..38d0ff57fb2 100644
--- a/apps/dav/lib/Connector/Sabre/Node.php
+++ b/apps/dav/lib/Connector/Sabre/Node.php
@@ -38,6 +38,7 @@ use OC\Files\Mount\MoveableMount;
use OC\Files\View;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
use OCP\Files\FileInfo;
+use OCP\Files\StorageNotAvailableException;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
@@ -250,15 +251,17 @@ abstract class Node implements \Sabre\DAV\INode {
}
}
- $storage = $this->info->getStorage();
-
- $path = $this->info->getInternalPath();
+ try {
+ $storage = $this->info->getStorage();
+ } catch (StorageNotAvailableException $e) {
+ $storage = null;
+ }
- if ($storage->instanceOfStorage('\OCA\Files_Sharing\SharedStorage')) {
+ if ($storage && $storage->instanceOfStorage('\OCA\Files_Sharing\SharedStorage')) {
/** @var \OCA\Files_Sharing\SharedStorage $storage */
$permissions = (int)$storage->getShare()->getPermissions();
} else {
- $permissions = $storage->getPermissions($path);
+ $permissions = $this->info->getPermissions();
}
/*
diff --git a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
index b46c731d3dc..2b84d8475fc 100644
--- a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
@@ -151,12 +151,13 @@ class NodeTest extends \Test\TestCase {
$info = $this->getMockBuilder(FileInfo::class)
->disableOriginalConstructor()
- ->setMethods(['getStorage', 'getType', 'getMountPoint'])
+ ->setMethods(['getStorage', 'getType', 'getMountPoint', 'getPermissions'])
->getMock();
$info->method('getStorage')->willReturn($storage);
$info->method('getType')->willReturn($type);
$info->method('getMountPoint')->willReturn($mountpoint);
+ $info->method('getPermissions')->willReturn($permissions);
$view = $this->getMockBuilder(View::class)
->disableOriginalConstructor()