diff --git a/application/forms/Authentication/LoginForm.php b/application/forms/Authentication/LoginForm.php index 9646046f6..0addb825a 100644 --- a/application/forms/Authentication/LoginForm.php +++ b/application/forms/Authentication/LoginForm.php @@ -73,7 +73,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 d2ca284a6..36f6805ba 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) { @@ -608,7 +608,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); } }