diff --git a/src/AjaxControllers/AjaxSearchNodesSourcesController.php b/src/AjaxControllers/AjaxSearchNodesSourcesController.php index d90719c4..8f2e7115 100644 --- a/src/AjaxControllers/AjaxSearchNodesSourcesController.php +++ b/src/AjaxControllers/AjaxSearchNodesSourcesController.php @@ -92,9 +92,10 @@ protected function getNodeSourceData(NodesSources $source): array /** @var Translation $translation */ $translation = $source->getTranslation(); $displayableNSDoc = $source->getDocumentsByFields()->filter(function (NodesSourcesDocuments $nsDoc) { - return $nsDoc->getDocument()->isImage() || $nsDoc->getDocument()->isSvg(); + $doc = $nsDoc->getDocument(); + return !$doc->isPrivate() && ($doc->isImage() || $doc->isSvg()); })->first(); - if ($displayableNSDoc instanceof NodesSourcesDocuments) { + if (false !== $displayableNSDoc) { $thumbnail = $displayableNSDoc->getDocument(); $this->documentUrlGenerator->setDocument($thumbnail); $this->documentUrlGenerator->setOptions([ diff --git a/src/Controllers/LoginController.php b/src/Controllers/LoginController.php index 0e66ac8a..5714ba77 100644 --- a/src/Controllers/LoginController.php +++ b/src/Controllers/LoginController.php @@ -4,6 +4,7 @@ namespace Themes\Rozier\Controllers; +use RZ\Roadiz\CoreBundle\Bag\Settings; use RZ\Roadiz\CoreBundle\Entity\Document; use RZ\Roadiz\Documents\MediaFinders\RandomImageFinder; use RZ\Roadiz\Documents\UrlGenerators\DocumentUrlGeneratorInterface; @@ -14,31 +15,25 @@ class LoginController extends RozierApp { - private DocumentUrlGeneratorInterface $documentUrlGenerator; - private RandomImageFinder $randomImageFinder; - - /** - * @param DocumentUrlGeneratorInterface $documentUrlGenerator - * @param RandomImageFinder $randomImageFinder - */ public function __construct( - DocumentUrlGeneratorInterface $documentUrlGenerator, - RandomImageFinder $randomImageFinder + private readonly DocumentUrlGeneratorInterface $documentUrlGenerator, + private readonly RandomImageFinder $randomImageFinder, + private readonly Settings $settingsBag ) { - $this->documentUrlGenerator = $documentUrlGenerator; - $this->randomImageFinder = $randomImageFinder; } - /** - * @param Request $request - * - * @return Response - */ public function imageAction(Request $request): Response { $response = new JsonResponse(); - if (null !== $document = $this->getSettingsBag()->getDocument('login_image')) { - if ($document instanceof Document && $document->isProcessable()) { + $response->setPublic(); + $response->setMaxAge(600); + + if (null !== $document = $this->settingsBag->getDocument('login_image')) { + if ( + $document instanceof Document && + !$document->isPrivate() && + $document->isProcessable() + ) { $this->documentUrlGenerator->setDocument($document); $this->documentUrlGenerator->setOptions([ 'width' => 1920, @@ -49,7 +44,7 @@ public function imageAction(Request $request): Response $response->setData([ 'url' => $this->documentUrlGenerator->getUrl() ]); - return $this->makeResponseCachable($request, $response, 60, true); + return $response; } } @@ -62,6 +57,6 @@ public function imageAction(Request $request): Response $response->setData([ 'url' => '/themes/Rozier/static/assets/img/default_login.jpg' ]); - return $this->makeResponseCachable($request, $response, 60, true); + return $response; } } diff --git a/src/Serialization/DocumentThumbnailSerializeSubscriber.php b/src/Serialization/DocumentThumbnailSerializeSubscriber.php index 1e6bcc81..0b4e3456 100644 --- a/src/Serialization/DocumentThumbnailSerializeSubscriber.php +++ b/src/Serialization/DocumentThumbnailSerializeSubscriber.php @@ -37,6 +37,7 @@ public function onPostSerialize(ObjectEvent $event): void if ( $visitor instanceof SerializationVisitorInterface && $document instanceof Document && + !$document->isPrivate() && $context->hasAttribute('groups') && \is_array($context->getAttribute('groups')) && in_array('explorer_thumbnail', $context->getAttribute('groups'))