Fix getting ocs share permissions if a storage is not available
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
ad9b458c74
commit
d4a51447d1
|
@ -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();
|
||||
try {
|
||||
$storage = $this->info->getStorage();
|
||||
} catch (StorageNotAvailableException $e) {
|
||||
$storage = null;
|
||||
}
|
||||
|
||||
$path = $this->info->getInternalPath();
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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…
Reference in New Issue