Browse Source

Fix getting ocs share permissions if a storage is not available

Signed-off-by: Robin Appelman <robin@icewind.nl>
tags/v14.0.0beta1
Robin Appelman 5 years ago
parent
commit
d4a51447d1
No account linked to committer's email address

+ 8
- 5
apps/dav/lib/Connector/Sabre/Node.php View File

@@ -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();
}

/*

+ 2
- 1
apps/dav/tests/unit/Connector/Sabre/NodeTest.php View File

@@ -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()

Loading…
Cancel
Save