/** * Forward the user with HTTP status code 403 and an (optional) message * based on a boolean check * * @param boolean $condition * @param string $message [optional] The message */ public function forward403unless($condition, $message = null) { if (!$condition) { $message = $message === null ? Context::getI18n()->__("You are not allowed to access this page") : htmlentities($message); if (Context::getUser()->isGuest()) { Context::setMessage('login_message_err', $message); Context::setMessage('login_force_redirect', true); Context::setMessage('login_referer', Context::getRouting()->generate(Context::getRouting()->getCurrentRouteName(), Context::getRequest()->getParameters())); $this->forward(Context::getRouting()->generate('login_page'), 403); } else { $this->getResponse()->setHttpStatus(403); $this->getResponse()->setTemplate('main/forbidden'); } } }
/** * Forward the user with HTTP status code 403 and an (optional) message * based on a boolean check * * @param boolean $condition * @param string $message [optional] The message */ public function forward403unless($condition, $message = null) { if (!$condition) { $message = $message === null ? Context::getI18n()->__("You are either not allowed to access this page or don't have access to perform this action") : $message; if (Context::getUser()->isGuest()) { Context::setMessage('login_message_err', htmlentities($message)); Context::setMessage('login_force_redirect', true); Context::setMessage('login_referer', Context::getRouting()->generate(Context::getRouting()->getCurrentRouteName(), Context::getRequest()->getParameters())); $this->forward(Context::getRouting()->generate('login_page'), Response::HTTP_STATUS_FORBIDDEN); } elseif (Context::getRequest()->isAjaxCall()) { $this->getResponse()->setHttpStatus(Response::HTTP_STATUS_FORBIDDEN); throw new \Exception($message); } else { throw new \thebuggenie\core\framework\exceptions\ActionNotAllowedException($message); } } }