aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2020-06-04 10:59:22 +0200
committerGitHub <noreply@github.com>2020-06-04 10:59:22 +0200
commit59c1ff690a88482ecba170b6f9b7624fc8a18a76 (patch)
treed18a3df4ec809469c701de083f39e0911b6a81a0
parent7ef10b2f4851c987029c9fe05062272eebbf9e1b (diff)
parent69eda9c0f6a3f0128475cde8f9e021c71677c51d (diff)
downloadnextcloud-server-59c1ff690a88482ecba170b6f9b7624fc8a18a76.tar.gz
nextcloud-server-59c1ff690a88482ecba170b6f9b7624fc8a18a76.zip
Merge pull request #21199 from nextcloud/bugfix/noid/prevent-harder-sharing-your-root
Prevent harder to share your root
-rw-r--r--lib/private/Share20/Manager.php4
-rw-r--r--tests/lib/Share20/ManagerTest.php6
2 files changed, 5 insertions, 5 deletions
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index 86b34a4b9f0..3d7a274e662 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -277,12 +277,10 @@ class Manager implements IManager {
// And you can't share your rootfolder
if ($this->userManager->userExists($share->getSharedBy())) {
$userFolder = $this->rootFolder->getUserFolder($share->getSharedBy());
- $userFolderPath = $userFolder->getPath();
} else {
$userFolder = $this->rootFolder->getUserFolder($share->getShareOwner());
- $userFolderPath = $userFolder->getPath();
}
- if ($userFolderPath === $share->getNode()->getPath()) {
+ if ($userFolder->getId() === $share->getNode()->getId()) {
throw new \InvalidArgumentException('You can’t share your root folder');
}
diff --git a/tests/lib/Share20/ManagerTest.php b/tests/lib/Share20/ManagerTest.php
index 54feedf15ce..e66ac51aeea 100644
--- a/tests/lib/Share20/ManagerTest.php
+++ b/tests/lib/Share20/ManagerTest.php
@@ -646,7 +646,7 @@ class ManagerTest extends \Test\TestCase {
$rootFolder = $this->createMock(Folder::class);
$rootFolder->method('isShareable')->willReturn(true);
$rootFolder->method('getPermissions')->willReturn(\OCP\Constants::PERMISSION_ALL);
- $rootFolder->method('getPath')->willReturn('myrootfolder');
+ $rootFolder->method('getId')->willReturn(42);
$data[] = [$this->createShare(null, \OCP\Share::SHARE_TYPE_USER, $rootFolder, $user2, $user0, $user0, 30, null, null), 'You can’t share your root folder', true];
$data[] = [$this->createShare(null, \OCP\Share::SHARE_TYPE_GROUP, $rootFolder, $group0, $user0, $user0, 2, null, null), 'You can’t share your root folder', true];
@@ -706,7 +706,9 @@ class ManagerTest extends \Test\TestCase {
]);
$userFolder = $this->createMock(Folder::class);
- $userFolder->method('getPath')->willReturn('myrootfolder');
+ $userFolder->expects($this->any())
+ ->method('getId')
+ ->willReturn(42);
$userFolder->expects($this->any())
->method('getRelativePath')
->willReturnArgument(0);