Skip to content

Commit 24e136a

Browse files
committed
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>
1 parent 28e0ccf commit 24e136a

File tree

1 file changed

+16
-29
lines changed

1 file changed

+16
-29
lines changed

apps/files_versions/lib/Listener/FileEventsListener.php

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -59,36 +59,21 @@
5959
use OCP\Files\IMimeTypeLoader;
6060
use OCP\Files\IRootFolder;
6161
use OCP\Files\Node;
62+
use OCP\IUserSession;
6263
use Psr\Log\LoggerInterface;
6364

6465
class FileEventsListener implements IEventListener {
65-
private IRootFolder $rootFolder;
66-
private IVersionManager $versionManager;
67-
/**
68-
* @var array<int, array>
69-
*/
7066
private array $writeHookInfo = [];
71-
/**
72-
* @var array<int, Node>
73-
*/
7467
private array $nodesTouched = [];
75-
/**
76-
* @var array<string, Node>
77-
*/
7868
private array $versionsDeleted = [];
79-
private IMimeTypeLoader $mimeTypeLoader;
80-
private LoggerInterface $logger;
8169

8270
public function __construct(
83-
IRootFolder $rootFolder,
84-
IVersionManager $versionManager,
85-
IMimeTypeLoader $mimeTypeLoader,
86-
LoggerInterface $logger,
71+
private IRootFolder $rootFolder,
72+
private IVersionManager $versionManager,
73+
private IMimeTypeLoader $mimeTypeLoader,
74+
private IUserSession $userSession,
75+
private LoggerInterface $logger,
8776
) {
88-
$this->rootFolder = $rootFolder;
89-
$this->versionManager = $versionManager;
90-
$this->mimeTypeLoader = $mimeTypeLoader;
91-
$this->logger = $logger;
9277
}
9378

9479
public function handle(Event $event): void {
@@ -354,18 +339,20 @@ public function pre_renameOrCopy_hook(Node $source, Node $target): void {
354339
* If no user is connected, try to use the node's owner.
355340
*/
356341
private function getPathForNode(Node $node): ?string {
357-
try {
342+
$user = $this->userSession?->getUser()?->getUID();
343+
if ($user) {
358344
return $this->rootFolder
359-
->getUserFolder(\OC_User::getUser())
345+
->getUserFolder($user)
360346
->getRelativePath($node->getPath());
361-
} catch (\Throwable $ex) {
362-
$owner = $node->getOwner();
363-
if ($owner === null) {
364-
return null;
365-
}
347+
}
348+
349+
$owner = $node->getOwner()?->getUid();
350+
if ($owner) {
366351
return $this->rootFolder
367-
->getUserFolder($owner->getUid())
352+
->getUserFolder($owner)
368353
->getRelativePath($node->getPath());
369354
}
355+
356+
return null;
370357
}
371358
}

0 commit comments

Comments
 (0)