diff --git a/public/app/core/components/sidemenu/sidemenu.html b/public/app/core/components/sidemenu/sidemenu.html
index 25aa38c45b8..1ee2776bfe9 100644
--- a/public/app/core/components/sidemenu/sidemenu.html
+++ b/public/app/core/components/sidemenu/sidemenu.html
@@ -45,7 +45,7 @@
-
diff --git a/public/app/core/components/sidemenu/sidemenu.ts b/public/app/core/components/sidemenu/sidemenu.ts
index 30230586e78..a4b1f5d454a 100644
--- a/public/app/core/components/sidemenu/sidemenu.ts
+++ b/public/app/core/components/sidemenu/sidemenu.ts
@@ -12,6 +12,7 @@ export class SideMenuCtrl {
mainLinks: any;
orgMenu: any;
appSubUrl: string;
+ loginUrl: string;
/** @ngInject */
constructor(private $scope, private $location, private contextSrv, private backendSrv, private $element) {
@@ -22,13 +23,14 @@ export class SideMenuCtrl {
this.mainLinks = config.bootData.mainNavLinks;
this.openUserDropdown();
+ this.loginUrl = '/login?redirect=' + encodeURIComponent(this.$location.path());
this.$scope.$on('$routeChangeSuccess', () => {
if (!this.contextSrv.pinned) {
this.contextSrv.sidemenu = false;
}
+ this.loginUrl = '/login?redirect=' + encodeURIComponent(this.$location.path());
});
-
}
getUrl(url) {
diff --git a/public/app/core/controllers/login_ctrl.js b/public/app/core/controllers/login_ctrl.js
index 8696d94f4f3..748b64dc5c1 100644
--- a/public/app/core/controllers/login_ctrl.js
+++ b/public/app/core/controllers/login_ctrl.js
@@ -70,7 +70,12 @@ function (angular, coreModule, config) {
}
backendSrv.post('/login', $scope.formModel).then(function(result) {
- if (result.redirectUrl) {
+ var params = $location.search();
+
+ if (params.redirect && params.redirect[0] === '/') {
+ window.location.href = config.appSubUrl + params.redirect;
+ }
+ else if (result.redirectUrl) {
window.location.href = result.redirectUrl;
} else {
window.location.href = config.appSubUrl + '/';