Browse Source

Prevent harder to share your root

Signed-off-by: Joas Schilling <coding@schilljs.com>
Joas Schilling 3 years ago
parent
commit
69eda9c0f6
2 changed files with 5 additions and 5 deletions
  1. 1 3
      lib/private/Share20/Manager.php
  2. 4 2
      tests/lib/Share20/ManagerTest.php

+ 1 - 3
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');
 		}
 

+ 4 - 2
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);