Filter out generic remote result for local users

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2018-10-17 21:21:39 +02:00
parent ce79e587e4
commit d7caf841df
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
1 changed files with 17 additions and 7 deletions

View File

@ -115,14 +115,24 @@ class RemotePlugin implements ISearchPlugin {
$result['wide'] = array_slice($result['wide'], $offset, $limit);
}
/**
* Add generic share with remote item for valid cloud ids that are not users of the local instance
*/
if (!$searchResult->hasExactIdMatch($resultType) && $this->cloudIdManager->isValidCloudId($search) && $offset === 0) {
$result['exact'][] = [
'label' => $search,
'value' => [
'shareType' => Share::SHARE_TYPE_REMOTE,
'shareWith' => $search,
],
];
try {
list($remoteUser, $serverUrl) = $this->splitUserRemote($search);
$localUser = $this->userManager->get($remoteUser);
if ($localUser === null || $search !== $localUser->getCloudId()) {
$result['exact'][] = [
'label' => $search,
'value' => [
'shareType' => Share::SHARE_TYPE_REMOTE,
'shareWith' => $search,
],
];
}
} catch (\InvalidArgumentException $e) {
}
}
$searchResult->addResultSet($resultType, $result['wide'], $result['exact']);