diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php index d556ab76f6..61678e67c1 100644 --- a/apps/files_sharing/lib/Controller/ShareesAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php @@ -198,13 +198,12 @@ class ShareesAPIController extends OCSController { $shareTypes[] = Share::SHARE_TYPE_CIRCLE; } - if (isset($_GET['shareType']) && is_array($_GET['shareType'])) { - $shareTypes = array_intersect($shareTypes, $_GET['shareType']); - sort($shareTypes); + if ($shareType !== null && is_array($shareType)) { + $shareTypes = array_intersect($shareTypes, $shareType); } else if (is_numeric($shareType)) { $shareTypes = array_intersect($shareTypes, [(int) $shareType]); - sort($shareTypes); } + sort($shareTypes); $this->shareWithGroupOnly = $this->config->getAppValue('core', 'shareapi_only_share_with_group_members', 'no') === 'yes'; $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes'; diff --git a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php index 8c0c5b1e41..1fb14ad9b8 100644 --- a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php @@ -271,9 +271,12 @@ class ShareesAPIControllerTest extends TestCase { ->setMethods(['isRemoteSharingAllowed', 'shareProviderExists', 'isRemoteGroupSharingAllowed']) ->getMock(); + $expectedShareTypes = $shareTypes; + sort($expectedShareTypes); + $this->collaboratorSearch->expects($this->once()) ->method('search') - ->with($search, $shareTypes, $this->anything(), $perPage, $perPage * ($page -1)) + ->with($search, $expectedShareTypes, $this->anything(), $perPage, $perPage * ($page -1)) ->willReturn([[], false]); $sharees->expects($this->any()) @@ -398,7 +401,7 @@ class ShareesAPIControllerTest extends TestCase { $this->assertSame($expected, $this->invokePrivate($this->sharees, 'isRemoteSharingAllowed', [$itemType])); } - + public function testSearchNoItemType() { $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class); $this->expectExceptionMessage('Missing itemType');