The Gitlab instance will be restarted on Monday April 28th at 2AM. There will be a short interruption of service.

Skip to content
Snippets Groups Projects
Commit a2231e95 authored by Václav Rosecký's avatar Václav Rosecký Committed by Robert Lange
Browse files

Disable session writes in getRecordCover AJAX handler (#1842)

parent 5de2847e
Branches
Tags
No related merge requests found
......@@ -33,6 +33,7 @@ use VuFind\Cover\Router as CoverRouter;
use VuFind\Exception\RecordMissing as RecordMissingException;
use VuFind\ILS\Driver\CacheTrait;
use VuFind\Record\Loader as RecordLoader;
use VuFind\Session\Settings as SessionSettings;
/**
* GetRecordCover AJAX handler.
......@@ -79,18 +80,20 @@ class GetRecordCover extends AbstractBase implements AjaxHandlerInterface
/**
* GetRecordCover constructor.
*
* @param RecordLoader $recordLoader Record loader
* @param CoverRouter $coverRouter Cover router
* @param PhpRenderer $renderer PHP renderer (only required if
* $userCoverFallbacksOnFail is set to true)
* @param bool $useCoverFallbacksOnFail If true we will render a
* @param SessionSettings $ss Session settings
* @param RecordLoader $recordLoader Record loader
* @param CoverRouter $coverRouter Cover router
* @param PhpRenderer $renderer PHP renderer (only
* required if $userCoverFallbacksOnFail is set to true)
* @param bool $useCoverFallbacksOnFail If true we will render a
* fallback html template in case no image could be loaded
*/
public function __construct(RecordLoader $recordLoader,
public function __construct(SessionSettings $ss, RecordLoader $recordLoader,
CoverRouter $coverRouter,
?PhpRenderer $renderer = null,
$useCoverFallbacksOnFail = false
) {
$this->sessionSettings = $ss;
$this->recordLoader = $recordLoader;
$this->coverRouter = $coverRouter;
$this->renderer = $renderer;
......@@ -107,6 +110,8 @@ class GetRecordCover extends AbstractBase implements AjaxHandlerInterface
*/
public function handleRequest(Params $params)
{
$this->disableSessionWrites();
$recordId = $params->fromQuery('recordId');
$recordSource = $params->fromQuery('source', DEFAULT_SEARCH_BACKEND);
$size = $params->fromQuery('size', 'small');
......
......@@ -67,6 +67,7 @@ class GetRecordCoverFactory implements FactoryInterface
= $container->get(\VuFind\Config\PluginManager::class)->get('config');
$useFallbacks = $config->Content->useCoverFallbacksOnFail ?? false;
return new $requestedName(
$container->get(\VuFind\Session\Settings::class),
$container->get(\VuFind\Record\Loader::class),
$container->get(\VuFind\Cover\Router::class),
// We only need the view renderer if we're going to use fallbacks:
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment