diff --git a/application/forms/Authentication/LoginForm.php b/application/forms/Authentication/LoginForm.php index 72dea3399..bb01f8a04 100644 --- a/application/forms/Authentication/LoginForm.php +++ b/application/forms/Authentication/LoginForm.php @@ -71,7 +71,7 @@ class LoginForm extends Form if ($this->created) { $redirect = $this->getElement('redirect')->getValue(); } - if (empty($redirect)) { + if (empty($redirect) || strpos($redirect, 'authentication/logout') !== 0) { $redirect = static::REDIRECT_URL; } return Url::fromPath($redirect); diff --git a/public/js/icinga/loader.js b/public/js/icinga/loader.js index dfdf1d25d..5ad87cae5 100644 --- a/public/js/icinga/loader.js +++ b/public/js/icinga/loader.js @@ -359,7 +359,7 @@ url = parts.shift(); var redirectionUrl = this.addUrlFlag(url, 'renderLayout'); var r = this.loadUrl(redirectionUrl, $('#layout')); - r.addToHistory = false; + r.historyUrl = url; if (parts.length) { r.loadNext = parts; } else if (!! document.location.hash) { @@ -613,7 +613,8 @@ } else { // Request wasn't for a container, so it's usually the body // or the full layout. Push request URL to history: - this.icinga.history.pushUrl(req.url); + var url = typeof req.historyUrl !== 'undefined' ? req.historyUrl : req.url; + this.icinga.history.pushUrl(url); } }