Skip to content

Commit 44be41d

Browse files
Merge pull request #53700 from nextcloud/fix/catch-exception-in-encryption-listener
2 parents ce10828 + f4b780b commit 44be41d

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

lib/private/Encryption/EncryptionEventListener.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
use OCP\EventDispatcher\IEventDispatcher;
1818
use OCP\EventDispatcher\IEventListener;
1919
use OCP\Files\Events\Node\NodeRenamedEvent;
20+
use OCP\Files\NotFoundException;
2021
use OCP\IUser;
22+
use OCP\IUserManager;
2123
use OCP\IUserSession;
2224
use OCP\Share\Events\ShareCreatedEvent;
2325
use OCP\Share\Events\ShareDeletedEvent;
@@ -31,6 +33,7 @@ public function __construct(
3133
private IUserSession $userSession,
3234
private SetupManager $setupManager,
3335
private Manager $encryptionManager,
36+
private IUserManager $userManager,
3437
) {
3538
}
3639

@@ -50,10 +53,14 @@ public function handle(Event $event): void {
5053
} elseif ($event instanceof ShareCreatedEvent) {
5154
$this->getUpdate()->postShared($event->getShare()->getNode());
5255
} elseif ($event instanceof ShareDeletedEvent) {
53-
// In case the unsharing happens in a background job, we don't have
54-
// a session and we load instead the user from the UserManager
55-
$owner = $event->getShare()->getNode()->getOwner();
56-
$this->getUpdate($owner)->postUnshared($event->getShare()->getNode());
56+
try {
57+
// In case the unsharing happens in a background job, we don't have
58+
// a session and we load instead the user from the UserManager
59+
$owner = $this->userManager->get($event->getShare()->getShareOwner());
60+
$this->getUpdate($owner)->postUnshared($event->getShare()->getNode());
61+
} catch (NotFoundException $e) {
62+
/* The node was deleted already, nothing to update */
63+
}
5764
} elseif ($event instanceof NodeRestoredEvent) {
5865
$this->getUpdate()->postRestore($event->getTarget());
5966
}
@@ -78,7 +85,7 @@ private function getUpdate(?IUser $owner = null): Update {
7885
$this->updater = new Update(
7986
new Util(
8087
new View(),
81-
\OC::$server->getUserManager(),
88+
$this->userManager,
8289
\OC::$server->getGroupManager(),
8390
\OC::$server->getConfig()),
8491
\OC::$server->getEncryptionManager(),

0 commit comments

Comments
 (0)