<?php
declare(strict_types=1);
namespace Wbfk\ShopwareFixes\CoreFixes\Content\Media\Subscriber;
use Shopware\Core\Content\Media\Subscriber\MediaDeletionSubscriber as ShopwareMediaDeletionSubscriber;
use Shopware\Core\Framework\Api\Context\AdminApiSource;
use Shopware\Core\Framework\DataAbstractionLayer\Event\BeforeDeleteEvent;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntitySearchedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class MediaDeletionSubscriber extends ShopwareMediaDeletionSubscriber implements EventSubscriberInterface
{
/** @noinspection PhpMissingParentConstructorInspection */
public function __construct(
private readonly ShopwareMediaDeletionSubscriber $decorated
) {
}
public static function getSubscribedEvents(): array
{
return parent::getSubscribedEvents();
}
public function securePrivateFolders(EntitySearchedEvent $event): void
{
// Allow admins to search private files
if ($event->getContext()->getSource() instanceof AdminApiSource) {
return;
}
$this->decorated->securePrivateFolders($event);
}
public function beforeDelete(BeforeDeleteEvent $event): void
{
$this->decorated->beforeDelete($event);
}
}