diff options
Diffstat (limited to 'apps/federatedfilesharing')
-rw-r--r-- | apps/federatedfilesharing/lib/FederatedShareProvider.php | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php index 62be96dfa00..370ba44a0bd 100644 --- a/apps/federatedfilesharing/lib/FederatedShareProvider.php +++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php @@ -514,29 +514,19 @@ class FederatedShareProvider implements IShareProvider { $isOwner = false; - $this->removeShareFromTable($share); - // if the local user is the owner we can send the unShare request directly... if ($this->userManager->userExists($share->getShareOwner())) { $this->notifications->sendRemoteUnShare($remote, $share->getId(), $share->getToken()); $this->revokeShare($share, true); - $isOwner = true; } else { // ... if not we need to correct ID for the unShare request $remoteId = $this->getRemoteId($share); $this->notifications->sendRemoteUnShare($remote, $remoteId, $share->getToken()); $this->revokeShare($share, false); } - // send revoke notification to the other user, if initiator and owner are not the same user - if ($share->getShareOwner() !== $share->getSharedBy()) { - $remoteId = $this->getRemoteId($share); - if ($isOwner) { - list(, $remote) = $this->addressHandler->splitUserRemote($share->getSharedBy()); - } else { - list(, $remote) = $this->addressHandler->splitUserRemote($share->getShareOwner()); - } - $this->notifications->sendRevokeShare($remote, $remoteId, $share->getToken()); - } + // only remove the share when all messages are send to not lose information + // about the share to early + $this->removeShareFromTable($share); } /** |