*/ class OverwritePublicSharePropertiesListener implements IEventListener { public function __construct( private PermissionManager $permissionManager, private ?string $userId, ) { } #[\Override] public function handle(Event $event): void { if (!$event instanceof OverwritePublicSharePropertiesEvent) { return; } $share = $event->getShare(); try { $node = $share->getNode(); } catch (NotFoundException) { return; } if ($this->permissionManager->shouldWatermark($node, $this->userId, $share)) { $share->setHideDownload(true); } } }