Merge pull request #22683 from owncloud/fix_22682
Relax rootfolder check
This commit is contained in:
commit
6526c122af
3 changed files with 25 additions and 2 deletions
|
@ -513,4 +513,16 @@ Feature: sharing
|
|||
When creating a share with
|
||||
| path | / |
|
||||
| shareType | 3 |
|
||||
Then the OCS status code should be "403"
|
||||
Then the OCS status code should be "403"
|
||||
|
||||
Scenario: Allow modification of reshare
|
||||
Given user "user0" exists
|
||||
And user "user1" exists
|
||||
And user "user2" exists
|
||||
And user "user0" created a folder "/TMP"
|
||||
And file "TMP" of user "user0" is shared with user "user1"
|
||||
And file "TMP" of user "user1" is shared with user "user2"
|
||||
And As an "user1"
|
||||
When Updating last share with
|
||||
| permissions | 1 |
|
||||
Then the OCS status code should be "100"
|
||||
|
|
|
@ -198,7 +198,7 @@ class Manager implements IManager {
|
|||
}
|
||||
|
||||
// And you can't share your rootfolder
|
||||
if ($this->rootFolder->getUserFolder($share->getSharedBy())->isSubNode($share->getNode()) === false) {
|
||||
if ($this->rootFolder->getUserFolder($share->getSharedBy())->getPath() === $share->getNode()->getPath()) {
|
||||
throw new \InvalidArgumentException('You can\'t share your root folder');
|
||||
}
|
||||
|
||||
|
|
|
@ -644,6 +644,15 @@ class ManagerTest extends \Test\TestCase {
|
|||
$data[] = [$this->createShare(null, \OCP\Share::SHARE_TYPE_GROUP, $limitedPermssions, $group0, $user0, $user0, 17, null, null), 'Cannot increase permissions of path', true];
|
||||
$data[] = [$this->createShare(null, \OCP\Share::SHARE_TYPE_LINK, $limitedPermssions, null, $user0, $user0, 3, null, null), 'Cannot increase permissions of path', true];
|
||||
|
||||
$rootFolder = $this->getMock('\OCP\Files\Folder');
|
||||
$rootFolder->method('isShareable')->willReturn(true);
|
||||
$rootFolder->method('getPermissions')->willReturn(\OCP\Constants::PERMISSION_ALL);
|
||||
$rootFolder->method('getPath')->willReturn('myrootfolder');
|
||||
|
||||
$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];
|
||||
$data[] = [$this->createShare(null, \OCP\Share::SHARE_TYPE_LINK, $rootFolder, null, $user0, $user0, 16, null, null), 'You can\'t share your root folder', true];
|
||||
|
||||
$allPermssions = $this->getMock('\OCP\Files\Folder');
|
||||
$allPermssions->method('isShareable')->willReturn(true);
|
||||
$allPermssions->method('getPermissions')->willReturn(\OCP\Constants::PERMISSION_ALL);
|
||||
|
@ -678,8 +687,10 @@ class ManagerTest extends \Test\TestCase {
|
|||
]));
|
||||
|
||||
$userFolder = $this->getMock('\OCP\Files\Folder');
|
||||
$userFolder->method('getPath')->willReturn('myrootfolder');
|
||||
$this->rootFolder->method('getUserFolder')->willReturn($userFolder);
|
||||
|
||||
|
||||
try {
|
||||
$this->invokePrivate($this->manager, 'generalCreateChecks', [$share]);
|
||||
$thrown = false;
|
||||
|
|
Loading…
Reference in a new issue