Merge pull request #10277 from nextcloud/ocs-permissions-storage-not-available

Fix getting ocs share permissions if a storage is not available
This commit is contained in:
Morris Jobke 2018-07-18 17:57:55 +02:00 committed by GitHub
commit ddebdb02fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

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

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