summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2023-12-06 17:48:30 +0100
committerGitHub <noreply@github.com>2023-12-06 17:48:30 +0100
commit72fca6ece35534c97a6520a375aa64c3c9bd8357 (patch)
tree9b1daea6113f0c2c37a324606b815759f2f975d1 /apps/files_sharing
parent669dc0dd62fd1b1902b029c040fddf10b296c911 (diff)
parent572890defeebb8d29c6fec2dfeb5eff369e47c41 (diff)
downloadnextcloud-server-72fca6ece35534c97a6520a375aa64c3c9bd8357.tar.gz
nextcloud-server-72fca6ece35534c97a6520a375aa64c3c9bd8357.zip
Merge pull request #41090 from nextcloud/backport/39044/stable27
[stable27] Fix root mounts not being setup in some cases
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/lib/External/Manager.php4
-rw-r--r--apps/files_sharing/tests/External/ManagerTest.php13
2 files changed, 14 insertions, 3 deletions
diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php
index d2e113c8bb3..63c2c19d25b 100644
--- a/apps/files_sharing/lib/External/Manager.php
+++ b/apps/files_sharing/lib/External/Manager.php
@@ -606,6 +606,10 @@ class Manager {
$this->logger->error('Mount point to remove share not found', ['mountPoint' => $mountPoint]);
return false;
}
+ if (!$mountPointObj instanceof Mount) {
+ $this->logger->error('Mount point to remove share is not an external share, share probably doesn\'t exist', ['mountPoint' => $mountPoint]);
+ return false;
+ }
$id = $mountPointObj->getStorage()->getCache()->getId('');
$mountPoint = $this->stripPath($mountPoint);
diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php
index 86386144932..0e80479eafe 100644
--- a/apps/files_sharing/tests/External/ManagerTest.php
+++ b/apps/files_sharing/tests/External/ManagerTest.php
@@ -31,8 +31,10 @@
namespace OCA\Files_Sharing\Tests\External;
use OC\Federation\CloudIdManager;
+use OC\Files\Mount\MountPoint;
use OC\Files\SetupManagerFactory;
use OC\Files\Storage\StorageFactory;
+use OC\Files\Storage\Temporary;
use OCA\Files_Sharing\External\Manager;
use OCA\Files_Sharing\External\MountProvider;
use OCA\Files_Sharing\Tests\TestCase;
@@ -191,13 +193,18 @@ class ManagerTest extends TestCase {
}
private function setupMounts() {
- $this->mountManager->clear();
+ $this->clearMounts();
$mounts = $this->testMountProvider->getMountsForUser($this->user, new StorageFactory());
foreach ($mounts as $mount) {
$this->mountManager->addMount($mount);
}
}
+ private function clearMounts() {
+ $this->mountManager->clear();
+ $this->mountManager->addMount(new MountPoint(Temporary::class, '', []));
+ }
+
public function testAddUserShare() {
$this->doTestAddShare([
'remote' => 'http://localhost',
@@ -235,7 +242,7 @@ class ManagerTest extends TestCase {
if ($isGroup) {
$this->manager->expects($this->never())->method('tryOCMEndPoint');
} else {
- $this->manager->expects($this->any())->method('tryOCMEndPoint')
+ $this->manager->method('tryOCMEndPoint')
->withConsecutive(
['http://localhost', 'token1', '2342', 'accept'],
['http://localhost', 'token3', '2342', 'decline'],
@@ -415,7 +422,7 @@ class ManagerTest extends TestCase {
$this->assertEmpty(self::invokePrivate($this->manager, 'getShares', [null]), 'Asserting all shares for the user have been deleted');
- $this->mountManager->clear();
+ $this->clearMounts();
self::invokePrivate($this->manager, 'setupMounts');
$this->assertNotMount($shareData1['name']);
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');