diff options
author | Git'Fellow <12234510+solracsf@users.noreply.github.com> | 2023-11-25 23:19:07 +0100 |
---|---|---|
committer | Git'Fellow <12234510+solracsf@users.noreply.github.com> | 2023-11-27 15:17:13 +0100 |
commit | 4173dfe05bd0155eb217dd428ac82091a508567a (patch) | |
tree | 314ede74313020506fc06e19af1de5588ea2e130 /apps/files_versions/lib | |
parent | 28e0ccfed906525183306ff3d38b67075d688773 (diff) | |
download | nextcloud-server-4173dfe05bd0155eb217dd428ac82091a508567a.tar.gz nextcloud-server-4173dfe05bd0155eb217dd428ac82091a508567a.zip |
fix(files_versions): Explicitly check for user or owner before call getUserFolder
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Fix typo
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Fix
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Fix
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Fix
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Optimize DI
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Switch to DI
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
userSession does not contain null
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Restore phpdoc annots
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Diffstat (limited to 'apps/files_versions/lib')
-rw-r--r-- | apps/files_versions/lib/Listener/FileEventsListener.php | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/apps/files_versions/lib/Listener/FileEventsListener.php b/apps/files_versions/lib/Listener/FileEventsListener.php index 323b92b3920..5fe41f76e49 100644 --- a/apps/files_versions/lib/Listener/FileEventsListener.php +++ b/apps/files_versions/lib/Listener/FileEventsListener.php @@ -59,11 +59,10 @@ use OCP\Files\Folder; use OCP\Files\IMimeTypeLoader; use OCP\Files\IRootFolder; use OCP\Files\Node; +use OCP\IUserSession; use Psr\Log\LoggerInterface; class FileEventsListener implements IEventListener { - private IRootFolder $rootFolder; - private IVersionManager $versionManager; /** * @var array<int, array> */ @@ -76,19 +75,14 @@ class FileEventsListener implements IEventListener { * @var array<string, Node> */ private array $versionsDeleted = []; - private IMimeTypeLoader $mimeTypeLoader; - private LoggerInterface $logger; public function __construct( - IRootFolder $rootFolder, - IVersionManager $versionManager, - IMimeTypeLoader $mimeTypeLoader, - LoggerInterface $logger, + private IRootFolder $rootFolder, + private IVersionManager $versionManager, + private IMimeTypeLoader $mimeTypeLoader, + private IUserSession $userSession, + private LoggerInterface $logger, ) { - $this->rootFolder = $rootFolder; - $this->versionManager = $versionManager; - $this->mimeTypeLoader = $mimeTypeLoader; - $this->logger = $logger; } public function handle(Event $event): void { @@ -354,18 +348,20 @@ class FileEventsListener implements IEventListener { * If no user is connected, try to use the node's owner. */ private function getPathForNode(Node $node): ?string { - try { + $user = $this->userSession->getUser()?->getUID(); + if ($user) { return $this->rootFolder - ->getUserFolder(\OC_User::getUser()) + ->getUserFolder($user) ->getRelativePath($node->getPath()); - } catch (\Throwable $ex) { - $owner = $node->getOwner(); - if ($owner === null) { - return null; - } + } + + $owner = $node->getOwner()?->getUid(); + if ($owner) { return $this->rootFolder - ->getUserFolder($owner->getUid()) + ->getUserFolder($owner) ->getRelativePath($node->getPath()); } + + return null; } } |