<?php
/**
* @copyright Copyright (C) Ibexa AS. All rights reserved.
* @license For full copyright and license information view LICENSE file distributed with this source code.
*/
declare(strict_types=1);
namespace Ibexa\PageBuilder\Event\Subscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
class CacheDisableOnEditorialPreviewResponseSubscriber implements EventSubscriberInterface
{
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents()
{
return [
KernelEvents::RESPONSE => ['onResponse', -255],
];
}
/**
* @param \Symfony\Component\HttpKernel\Event\ResponseEvent $event
*/
public function onResponse(ResponseEvent $event): void
{
$request = $event->getRequest();
$response = $event->getResponse();
$isEditorialMode = $request->attributes->get('editorial_mode', false);
if (!$isEditorialMode) {
return;
}
$response->setPrivate();
$response->setMaxAge(0);
$response->setSharedMaxAge(0);
$response->headers->addCacheControlDirective('must-revalidate', true);
$response->headers->addCacheControlDirective('no-store', true);
}
}
class_alias(CacheDisableOnEditorialPreviewResponseSubscriber::class, 'EzSystems\EzPlatformPageBuilder\Event\Subscriber\CacheDisableOnEditorialPreviewResponseSubscriber');