Skip to content

Commit c396f78

Browse files
Merge pull request #1595 from nextcloud/fix/prevent-exception-for-share-a-file-by-inviting-a-new-guest-account
Prevent exception for a share file by inviting a new guest account
2 parents e5b28a3 + 408800d commit c396f78

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

lib/AppInfo/BeforeShareCreatedListener.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use OCP\EventDispatcher\Event;
1515
use OCP\EventDispatcher\IEventListener;
1616
use OCP\Files\File;
17+
use OCP\IUserManager;
1718
use OCP\Share\Events\BeforeShareCreatedEvent;
1819
use OCP\Share\IShare;
1920
use Psr\Log\LoggerInterface;
@@ -24,7 +25,12 @@ class BeforeShareCreatedListener implements IEventListener {
2425
private NoteUtil $noteUtil;
2526
private LoggerInterface $logger;
2627

27-
public function __construct(SettingsService $settings, NoteUtil $noteUtil, LoggerInterface $logger) {
28+
public function __construct(
29+
protected IUserManager $userManager,
30+
SettingsService $settings,
31+
NoteUtil $noteUtil,
32+
LoggerInterface $logger,
33+
) {
2834
$this->settings = $settings;
2935
$this->noteUtil = $noteUtil;
3036
$this->logger = $logger;
@@ -63,6 +69,12 @@ public function overwriteShareTarget(IShare $share): void {
6369

6470
$share->setTarget('/' . $receiverNotesInternalPath . $itemTarget);
6571
} catch (\Throwable $e) {
72+
if (isset($receiver)) {
73+
$user = $this->userManager->get($receiver);
74+
if ($user && $user->getBackendClassName() === 'Guests') {
75+
return;
76+
}
77+
}
6678
$this->logger->error('Failed to overwrite share target for notes', [
6779
'exception' => $e,
6880
]);

0 commit comments

Comments
 (0)