From bc86ee1c317cb6d1da83edbade4f51a9e028d28e Mon Sep 17 00:00:00 2001 From: Haw-minn Lu Date: Fri, 27 Apr 2018 15:58:59 -0700 Subject: [PATCH] Add custom handlers and allow setting of defaults --- jupyterhub/app.py | 11 +++++++++++ jupyterhub/handlers/base.py | 10 ++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/jupyterhub/app.py b/jupyterhub/app.py index 29e23ef0..bf2c38f3 100644 --- a/jupyterhub/app.py +++ b/jupyterhub/app.py @@ -838,9 +838,20 @@ class JupyterHub(Application): handlers[i] = tuple(lis) return handlers + extra_page_handlers = List().tag(config=True) + default_page = Any(default_value=None).tag(config=True) + default_user_page = Any(default_value=None).tag(config=True) + + def init_handlers(self): h = [] + + # add any user configurable handlers. Make it first so it can override + # builtin handlers + + h.extend(self.extra_page_handlers) # load handlers from the authenticator + h.extend(self.authenticator.get_handlers(self)) # set default handlers h.extend(handlers.default_handlers) diff --git a/jupyterhub/handlers/base.py b/jupyterhub/handlers/base.py index 082c1ad5..e3646c8e 100644 --- a/jupyterhub/handlers/base.py +++ b/jupyterhub/handlers/base.py @@ -431,9 +431,15 @@ class BaseHandler(RequestHandler): # default URL after login # if self.redirect_to_server, default login URL initiates spawn if user and self.redirect_to_server: - next_url = user.url + if self.config.JupyterHub.get('default_user_page'): + next_url = self.config.JupyterHub['default_user_page'] + else: + next_url = user.url else: - next_url = url_path_join(self.hub.base_url, 'home') + if self.config.JupyterHub.get('default_page'): + next_url = self.config.JupyterHub['default_page'] + else: + next_url = url_path_join(self.hub.base_url, 'home') return next_url async def login_user(self, data=None):