mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Filter out duplicated shares before processing them
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
parent
8098abee60
commit
dbb6b4cbb9
1 changed files with 11 additions and 3 deletions
|
|
@ -628,18 +628,26 @@ class ShareAPIController extends OCSController {
|
|||
return $carry;
|
||||
}, []);
|
||||
|
||||
// filter out duplicate shares
|
||||
$known = [];
|
||||
$shares = array_filter($shares, function($share) use (&$known) {
|
||||
if (in_array($share->getId(), $known)) {
|
||||
return false;
|
||||
}
|
||||
$known[] = $share->getId();
|
||||
return true;
|
||||
});
|
||||
|
||||
$formatted = $miniFormatted = [];
|
||||
$resharingRight = false;
|
||||
$known = [];
|
||||
foreach ($shares as $share) {
|
||||
if (in_array($share->getId(), $known) || $share->getSharedWith() === $this->currentUser) {
|
||||
if ($share->getSharedWith() === $this->currentUser) {
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
$format = $this->formatShare($share);
|
||||
|
||||
$known[] = $share->getId();
|
||||
$formatted[] = $format;
|
||||
if ($share->getSharedBy() === $this->currentUser) {
|
||||
$miniFormatted[] = $format;
|
||||
|
|
|
|||
Loading…
Reference in a new issue