Browse Source

Filter out generic remote result for local users

Signed-off-by: Julius Härtl <jus@bitgrid.net>
tags/v15.0.0beta1
Julius Härtl 5 years ago
parent
commit
d7caf841df
No account linked to committer's email address
1 changed files with 17 additions and 7 deletions
  1. 17
    7
      lib/private/Collaboration/Collaborators/RemotePlugin.php

+ 17
- 7
lib/private/Collaboration/Collaborators/RemotePlugin.php 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']);

Loading…
Cancel
Save