1414use OCP \EventDispatcher \Event ;
1515use OCP \EventDispatcher \IEventListener ;
1616use OCP \Files \File ;
17+ use OCP \IUserManager ;
1718use OCP \Share \Events \BeforeShareCreatedEvent ;
1819use OCP \Share \IShare ;
1920use 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