diff options
author | Morris Jobke <hey@morrisjobke.de> | 2020-05-08 11:25:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-08 11:25:51 +0200 |
commit | 131b1fa45876a6e11a60ed60a24bb2b3becf637f (patch) | |
tree | 96efd725d30a2541ab6c54d7a555239792aece1a | |
parent | 1d588f67a3fd4e213e6fff85cef25ee710bf465f (diff) | |
parent | 16f4b43d94229aaaeefe5c5ae5c2bc44196cef4e (diff) | |
download | nextcloud-server-131b1fa45876a6e11a60ed60a24bb2b3becf637f.tar.gz nextcloud-server-131b1fa45876a6e11a60ed60a24bb2b3becf637f.zip |
Merge pull request #20815 from nextcloud/share-groupid-only
get only groupids in default share backend
-rw-r--r-- | lib/private/Share20/DefaultShareProvider.php | 10 | ||||
-rw-r--r-- | tests/lib/Share20/DefaultShareProviderTest.php | 47 |
2 files changed, 17 insertions, 40 deletions
diff --git a/lib/private/Share20/DefaultShareProvider.php b/lib/private/Share20/DefaultShareProvider.php index ff46badee3b..98ca747a894 100644 --- a/lib/private/Share20/DefaultShareProvider.php +++ b/lib/private/Share20/DefaultShareProvider.php @@ -44,7 +44,6 @@ use OCP\Files\Folder; use OCP\Files\IRootFolder; use OCP\Files\Node; use OCP\IDBConnection; -use OCP\IGroup; use OCP\IGroupManager; use OCP\IL10N; use OCP\IURLGenerator; @@ -888,7 +887,7 @@ class DefaultShareProvider implements IShareProvider { $cursor->closeCursor(); } elseif ($shareType === \OCP\Share::SHARE_TYPE_GROUP) { $user = $this->userManager->get($userId); - $allGroups = $this->groupManager->getUserGroups($user); + $allGroups = $this->groupManager->getUserGroupIds($user); /** @var Share[] $shares2 */ $shares2 = []; @@ -925,12 +924,7 @@ class DefaultShareProvider implements IShareProvider { } - $groups = array_filter($groups, function ($group) { - return $group instanceof IGroup; - }); - $groups = array_map(function (IGroup $group) { - return $group->getGID(); - }, $groups); + $groups = array_filter($groups); $qb->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_GROUP))) ->andWhere($qb->expr()->in('share_with', $qb->createNamedParameter( diff --git a/tests/lib/Share20/DefaultShareProviderTest.php b/tests/lib/Share20/DefaultShareProviderTest.php index 33c64265f7b..6f8a96fab19 100644 --- a/tests/lib/Share20/DefaultShareProviderTest.php +++ b/tests/lib/Share20/DefaultShareProviderTest.php @@ -165,7 +165,7 @@ class DefaultShareProviderTest extends \Test\TestCase { - + public function testGetShareByIdNotExist() { $this->expectException(\OCP\Share\Exceptions\ShareNotFound::class); @@ -856,7 +856,7 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->assertSame(null, $share->getSharedWith()); } - + public function testGetShareByTokenNotFound() { $this->expectException(\OCP\Share\Exceptions\ShareNotFound::class); @@ -986,14 +986,10 @@ class DefaultShareProviderTest extends \Test\TestCase { $groups = []; foreach (range(0, 100) as $i) { - $group = $this->createMock(IGroup::class); - $group->method('getGID')->willReturn('group'.$i); - $groups[] = $group; + $groups[] = 'group'.$i; } - $group = $this->createMock(IGroup::class); - $group->method('getGID')->willReturn('sharedWith'); - $groups[] = $group; + $groups[] = 'sharedWith'; $user = $this->createMock(IUser::class); $user->method('getUID')->willReturn('sharedWith'); @@ -1007,8 +1003,7 @@ class DefaultShareProviderTest extends \Test\TestCase { ['shareOwner', $owner], ['sharedBy', $initiator], ]); - $this->groupManager->method('getUserGroups')->with($user)->willReturn($groups); - $this->groupManager->method('get')->with('sharedWith')->willReturn($group); + $this->groupManager->method('getUserGroupIds')->with($user)->willReturn($groups); $file = $this->createMock(File::class); $this->rootFolder->method('getUserFolder')->with('shareOwner')->willReturnSelf(); @@ -1082,9 +1077,7 @@ class DefaultShareProviderTest extends \Test\TestCase { ]); $this->assertEquals(1, $qb->execute()); - $group = $this->createMock(IGroup::class); - $group->method('getGID')->willReturn('sharedWith'); - $groups = [$group]; + $groups = ['sharedWith']; $user = $this->createMock(IUser::class); $user->method('getUID')->willReturn('user'); @@ -1098,8 +1091,7 @@ class DefaultShareProviderTest extends \Test\TestCase { ['shareOwner', $owner], ['sharedBy', $initiator], ]); - $this->groupManager->method('getUserGroups')->with($user)->willReturn($groups); - $this->groupManager->method('get')->with('sharedWith')->willReturn($group); + $this->groupManager->method('getUserGroupIds')->with($user)->willReturn($groups); $file = $this->createMock(File::class); $this->rootFolder->method('getUserFolder')->with('shareOwner')->willReturnSelf(); @@ -1182,11 +1174,7 @@ class DefaultShareProviderTest extends \Test\TestCase { ['user1', $user1], ]); - $group0 = $this->createMock(IGroup::class); - $group0->method('getGID')->willReturn('group0'); - - $this->groupManager->method('get')->with('group0')->willReturn($group0); - $this->groupManager->method('getUserGroups')->with($user0)->willReturn([$group0]); + $this->groupManager->method('getUserGroupIds')->with($user0)->willReturn(['group0']); $node = $this->createMock(Folder::class); $node->method('getId')->willReturn($fileId2); @@ -1246,14 +1234,10 @@ class DefaultShareProviderTest extends \Test\TestCase { $groups = []; foreach (range(0, 100) as $i) { - $group = $this->createMock(IGroup::class); - $group->method('getGID')->willReturn('group'.$i); - $groups[] = $group; + $groups[] = 'group'.$i; } - $group = $this->createMock(IGroup::class); - $group->method('getGID')->willReturn('sharedWith'); - $groups[] = $group; + $groups[] = 'sharedWith'; $user = $this->createMock(IUser::class); $user->method('getUID')->willReturn('sharedWith'); @@ -1267,8 +1251,7 @@ class DefaultShareProviderTest extends \Test\TestCase { ['shareOwner', $owner], ['sharedBy', $initiator], ]); - $this->groupManager->method('getUserGroups')->with($user)->willReturn($groups); - $this->groupManager->method('get')->with('sharedWith')->willReturn($group); + $this->groupManager->method('getUserGroupIds')->with($user)->willReturn($groups); $share = $this->provider->getSharedWith('sharedWith', $shareType, null, 1 , 0); $this->assertCount(0, $share); @@ -1559,7 +1542,7 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->assertEquals('user2', $share2['share_with']); } - + public function testDeleteFromSelfGroupUserNotInGroup() { $this->expectException(\OC\Share20\Exception\ProviderException::class); $this->expectExceptionMessage('Recipient not in receiving group'); @@ -1604,7 +1587,7 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->provider->deleteFromSelf($share, 'user2'); } - + public function testDeleteFromSelfGroupDoesNotExist() { $this->expectException(\OC\Share20\Exception\ProviderException::class); $this->expectExceptionMessage('Group "group" does not exist'); @@ -1695,7 +1678,7 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->assertCount(0, $shares); } - + public function testDeleteFromSelfUserNotRecipient() { $this->expectException(\OC\Share20\Exception\ProviderException::class); $this->expectExceptionMessage('Recipient does not match'); @@ -1738,7 +1721,7 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->provider->deleteFromSelf($share, $user3); } - + public function testDeleteFromSelfLink() { $this->expectException(\OC\Share20\Exception\ProviderException::class); $this->expectExceptionMessage('Invalid shareType'); |