protected function prepare($objRootPage = null)
{
// Use the given root page object if available (thanks to Andreas Schempp)
if ($objRootPage === null) {
$objRootPage = $this->getRootPageFromUrl();
} else {
$objRootPage = \PageModel::findPublishedById(is_integer($objRootPage) ? $objRootPage : $objRootPage->id);
}
// Look for a 403 page
$obj403 = \PageModel::find403ByPid($objRootPage->id);
// Die if there is no page at all
if (null === $obj403) {
throw new AccessDeniedException('Forbidden');
}
// Forward to another page
if ($obj403->autoforward && $obj403->jumpTo) {
$objNextPage = \PageModel::findPublishedById($obj403->jumpTo);
if (null === $objNextPage) {
$this->log('Forward page ID "' . $obj403->jumpTo . '" does not exist', __METHOD__, TL_ERROR);
throw new ForwardPageNotFoundException('Forward page not found');
}
$this->redirect($objNextPage->getFrontendUrl(), $obj403->redirect == 'temporary' ? 302 : 301);
}
return $obj403;
}