diff --git a/IPython/frontend/html/notebook/handlers.py b/IPython/frontend/html/notebook/handlers.py index 06bfa88..c4a7551 100644 --- a/IPython/frontend/html/notebook/handlers.py +++ b/IPython/frontend/html/notebook/handlers.py @@ -208,7 +208,7 @@ class LoginHandler(AuthenticatedHandler): def _render(self, message=None): self.render('login.html', - next=self.get_argument('next', default='/'), + next=self.get_argument('next', default=self.application.ipython_app.base_project_url), read_only=self.read_only, logged_in=self.logged_in, login_available=self.login_available, @@ -218,7 +218,7 @@ class LoginHandler(AuthenticatedHandler): def get(self): if self.current_user: - self.redirect(self.get_argument('next', default='/')) + self.redirect(self.get_argument('next', default=self.application.ipython_app.base_project_url)) else: self._render() @@ -231,7 +231,7 @@ class LoginHandler(AuthenticatedHandler): self._render(message={'error': 'Invalid password'}) return - self.redirect(self.get_argument('next', default='/')) + self.redirect(self.get_argument('next', default=self.application.ipython_app.base_project_url)) class LogoutHandler(AuthenticatedHandler): diff --git a/IPython/frontend/html/notebook/notebookapp.py b/IPython/frontend/html/notebook/notebookapp.py index 7073ed9..398d67e 100644 --- a/IPython/frontend/html/notebook/notebookapp.py +++ b/IPython/frontend/html/notebook/notebookapp.py @@ -140,15 +140,6 @@ class NotebookWebApplication(web.Application): (r"/clusters/%s/%s" % (_profile_regex, _cluster_action_regex), ClusterActionHandler), (r"/clusters/%s" % _profile_regex, ClusterProfileHandler), ] - settings = dict( - template_path=os.path.join(os.path.dirname(__file__), "templates"), - static_path=os.path.join(os.path.dirname(__file__), "static"), - cookie_secret=os.urandom(1024), - login_url="/login", - ) - - # allow custom overrides for the tornado web app. - settings.update(settings_overrides) # Python < 2.6.5 doesn't accept unicode keys in f(**kwargs), and # base_project_url will always be unicode, which will in turn @@ -160,6 +151,16 @@ class NotebookWebApplication(web.Application): # and thus guaranteed to be ASCII: 'héllo' is really 'h%C3%A9llo'. base_project_url = py3compat.unicode_to_str(base_project_url, 'ascii') + settings = dict( + template_path=os.path.join(os.path.dirname(__file__), "templates"), + static_path=os.path.join(os.path.dirname(__file__), "static"), + cookie_secret=os.urandom(1024), + login_url="%s/login"%(base_project_url.rstrip('/')), + ) + + # allow custom overrides for the tornado web app. + settings.update(settings_overrides) + # prepend base_project_url onto the patterns that we match new_handlers = [] for handler in handlers: diff --git a/IPython/frontend/html/notebook/static/js/loginwidget.js b/IPython/frontend/html/notebook/static/js/loginwidget.js index 288772a..1277180 100644 --- a/IPython/frontend/html/notebook/static/js/loginwidget.js +++ b/IPython/frontend/html/notebook/static/js/loginwidget.js @@ -29,10 +29,10 @@ var IPython = (function (IPython) { LoginWidget.prototype.bind_events = function () { var that = this; this.element.find("button#logout").click(function () { - window.location = "/logout"; + window.location = "logout"; }); this.element.find("button#login").click(function () { - window.location = "/login"; + window.location = "login"; }); }; diff --git a/IPython/frontend/html/notebook/templates/login.html b/IPython/frontend/html/notebook/templates/login.html index 34f2a0e..6c436b0 100644 --- a/IPython/frontend/html/notebook/templates/login.html +++ b/IPython/frontend/html/notebook/templates/login.html @@ -16,7 +16,7 @@ <div id="main_app"> {% if login_available %} - <form action="/login?next={{url_escape(next)}}" method="post"> + <form action="login?next={{url_escape(next)}}" method="post"> Password: <input type="password" class='ui-widget ui-widget-content' name="password" id="password_input"> <input type="submit" value="Log in" id="login_submit"> </form> diff --git a/IPython/frontend/html/notebook/templates/logout.html b/IPython/frontend/html/notebook/templates/logout.html index e31f0ac..e27036f 100644 --- a/IPython/frontend/html/notebook/templates/logout.html +++ b/IPython/frontend/html/notebook/templates/logout.html @@ -23,9 +23,9 @@ {% end %} {% if read_only or not login_available %} - Proceed to the <a href="/">dashboard</a>. + Proceed to the <a href="">dashboard</a>. {% else %} - Proceed to the <a href="/login">login page</a>. + Proceed to the <a href="login">login page</a>. {% end %}