private function setCacheHeaders(Response $response)
{
/** @var $objPage \PageModel */
global $objPage;
if ($objPage->cache === false && $objPage->clientCache === false) {
return $response->setPrivate();
}
// Do not cache the response if a user is logged in or the page is protected or uses a mobile layout
// TODO: Add support for proxies so they can vary on member context and page layout
if (FE_USER_LOGGED_IN === true || BE_USER_LOGGED_IN === true || $objPage->isMobile || $objPage->protected || $this->hasAuthenticatedBackendUser()) {
return $response->setPrivate();
}
if ($objPage->clientCache > 0) {
$response->setMaxAge($objPage->clientCache);
}
if ($objPage->cache > 0) {
$response->setSharedMaxAge($objPage->cache);
}
return $response;
}