Loading patches/005-autocomplete-user-leak-core.patch +10 −10 Original line number Diff line number Diff line Loading @@ -34,14 +34,14 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co class MailPlugin implements ISearchPlugin { protected bool $shareWithGroupOnly; @@ -41,6 +42,7 @@ private KnownUserService $knownUserService, private IUserSession $userSession, private IMailer $mailer, + private IUserManager $userManager, private mixed $shareWithGroupOnlyExcludeGroupsList, private int $shareType, ) { @@ -60,6 +61,7 @@ * {@inheritdoc} */ public function search($search, $limit, $offset, ISearchResult $searchResult): bool { + $userManager = \OC::$server->get(IUserManager::class); if ($this->shareeEnumerationFullMatch && !$this->shareeEnumerationFullMatchEmail) { return false; } @@ -211,27 +213,63 @@ if ($exactEmailMatch) { $searchResult->markExactIdMatch($emailType); Loading @@ -56,7 +56,7 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co - 'shareWith' => $emailAddress, - ], - ]; + $isUserinInstance = $this->userManager->get($emailAddress); + $isUserinInstance = $userManager->get($emailAddress); + if ($isUserinInstance === null) { + // /e/ user is not in ecloud + $result['exact'][] = [ Loading Loading @@ -95,7 +95,7 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co - 'shareWith' => $emailAddress, - ], - ]; + $isUserinInstance = $this->userManager->get($emailAddress); + $isUserinInstance = $userManager->get($emailAddress); + if ($isUserinInstance === null) { + // /e/ user is not in ecloud + $result['wide'][] = [ Loading Loading
patches/005-autocomplete-user-leak-core.patch +10 −10 Original line number Diff line number Diff line Loading @@ -34,14 +34,14 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co class MailPlugin implements ISearchPlugin { protected bool $shareWithGroupOnly; @@ -41,6 +42,7 @@ private KnownUserService $knownUserService, private IUserSession $userSession, private IMailer $mailer, + private IUserManager $userManager, private mixed $shareWithGroupOnlyExcludeGroupsList, private int $shareType, ) { @@ -60,6 +61,7 @@ * {@inheritdoc} */ public function search($search, $limit, $offset, ISearchResult $searchResult): bool { + $userManager = \OC::$server->get(IUserManager::class); if ($this->shareeEnumerationFullMatch && !$this->shareeEnumerationFullMatchEmail) { return false; } @@ -211,27 +213,63 @@ if ($exactEmailMatch) { $searchResult->markExactIdMatch($emailType); Loading @@ -56,7 +56,7 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co - 'shareWith' => $emailAddress, - ], - ]; + $isUserinInstance = $this->userManager->get($emailAddress); + $isUserinInstance = $userManager->get($emailAddress); + if ($isUserinInstance === null) { + // /e/ user is not in ecloud + $result['exact'][] = [ Loading Loading @@ -95,7 +95,7 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co - 'shareWith' => $emailAddress, - ], - ]; + $isUserinInstance = $this->userManager->get($emailAddress); + $isUserinInstance = $userManager->get($emailAddress); + if ($isUserinInstance === null) { + // /e/ user is not in ecloud + $result['wide'][] = [ Loading