summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2020-05-08 11:25:51 +0200
committerGitHub <noreply@github.com>2020-05-08 11:25:51 +0200
commit131b1fa45876a6e11a60ed60a24bb2b3becf637f (patch)
tree96efd725d30a2541ab6c54d7a555239792aece1a
parent1d588f67a3fd4e213e6fff85cef25ee710bf465f (diff)
parent16f4b43d94229aaaeefe5c5ae5c2bc44196cef4e (diff)
downloadnextcloud-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.php10
-rw-r--r--tests/lib/Share20/DefaultShareProviderTest.php47
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');