diff --git a/library/Icinga/Web/Response.php b/library/Icinga/Web/Response.php index 6e2e84656..962e670d3 100644 --- a/library/Icinga/Web/Response.php +++ b/library/Icinga/Web/Response.php @@ -3,7 +3,23 @@ namespace Icinga\Web; use Zend_Controller_Response_Http; +use Icinga\Application\Icinga; class Response extends Zend_Controller_Response_Http { + public function redirectAndExit($url) + { + if (! $url instanceof Url) { + $url = Url::fromPath($url); + } + $url->getParams()->setSeparator('&'); + + if (Icinga::app()->getFrontController()->getRequest()->isXmlHttpRequest()) { + $this->setHeader('X-Icinga-Redirect', rawurlencode($url)); + } else { + $this->setRedirect($url->getAbsoluteUrl()); + } + $this->sendHeaders(); + exit; + } }