diff options
Diffstat (limited to 'lib/private/Encryption')
-rw-r--r-- | lib/private/Encryption/EncryptionEventListener.php | 17 | ||||
-rw-r--r-- | lib/private/Encryption/Keys/Storage.php | 1 | ||||
-rw-r--r-- | lib/private/Encryption/Util.php | 4 |
3 files changed, 15 insertions, 7 deletions
diff --git a/lib/private/Encryption/EncryptionEventListener.php b/lib/private/Encryption/EncryptionEventListener.php index 59ac0dea932..d51b4b0d531 100644 --- a/lib/private/Encryption/EncryptionEventListener.php +++ b/lib/private/Encryption/EncryptionEventListener.php @@ -17,7 +17,9 @@ use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventListener; use OCP\Files\Events\Node\NodeRenamedEvent; +use OCP\Files\NotFoundException; use OCP\IUser; +use OCP\IUserManager; use OCP\IUserSession; use OCP\Share\Events\ShareCreatedEvent; use OCP\Share\Events\ShareDeletedEvent; @@ -31,6 +33,7 @@ class EncryptionEventListener implements IEventListener { private IUserSession $userSession, private SetupManager $setupManager, private Manager $encryptionManager, + private IUserManager $userManager, ) { } @@ -50,10 +53,14 @@ class EncryptionEventListener implements IEventListener { } elseif ($event instanceof ShareCreatedEvent) { $this->getUpdate()->postShared($event->getShare()->getNode()); } elseif ($event instanceof ShareDeletedEvent) { - // In case the unsharing happens in a background job, we don't have - // a session and we load instead the user from the UserManager - $owner = $event->getShare()->getNode()->getOwner(); - $this->getUpdate($owner)->postUnshared($event->getShare()->getNode()); + try { + // In case the unsharing happens in a background job, we don't have + // a session and we load instead the user from the UserManager + $owner = $this->userManager->get($event->getShare()->getShareOwner()); + $this->getUpdate($owner)->postUnshared($event->getShare()->getNode()); + } catch (NotFoundException $e) { + /* The node was deleted already, nothing to update */ + } } elseif ($event instanceof NodeRestoredEvent) { $this->getUpdate()->postRestore($event->getTarget()); } @@ -78,7 +85,7 @@ class EncryptionEventListener implements IEventListener { $this->updater = new Update( new Util( new View(), - \OC::$server->getUserManager(), + $this->userManager, \OC::$server->getGroupManager(), \OC::$server->getConfig()), \OC::$server->getEncryptionManager(), diff --git a/lib/private/Encryption/Keys/Storage.php b/lib/private/Encryption/Keys/Storage.php index 2c0ce9e5ef3..cce22b9138a 100644 --- a/lib/private/Encryption/Keys/Storage.php +++ b/lib/private/Encryption/Keys/Storage.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. diff --git a/lib/private/Encryption/Util.php b/lib/private/Encryption/Util.php index 0566ab9a760..2d7bc28129b 100644 --- a/lib/private/Encryption/Util.php +++ b/lib/private/Encryption/Util.php @@ -290,8 +290,8 @@ class Util { if (count($root) > 1) { // detect alternative key storage root $rootDir = $this->getKeyStorageRoot(); - if ($rootDir !== '' && - str_starts_with(Filesystem::normalizePath($path), Filesystem::normalizePath($rootDir)) + if ($rootDir !== '' + && str_starts_with(Filesystem::normalizePath($path), Filesystem::normalizePath($rootDir)) ) { return true; } |