mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-14 13:33:00 +00:00
show who you're spawning for if it's not yourself
on the spawn page
This commit is contained in:
@@ -88,11 +88,11 @@ class SpawnHandler(BaseHandler):
|
||||
Only enabled when Spawner.options_form is defined.
|
||||
"""
|
||||
@gen.coroutine
|
||||
def _render_form(self, message=''):
|
||||
def _render_form(self, message='', for_user=None):
|
||||
user = self.get_current_user()
|
||||
spawner_options_form = yield user.spawner.get_options_form()
|
||||
return self.render_template('spawn.html',
|
||||
user=user,
|
||||
for_user=for_user,
|
||||
spawner_options_form=spawner_options_form,
|
||||
error_message=message,
|
||||
url=self.request.uri,
|
||||
@@ -105,7 +105,7 @@ class SpawnHandler(BaseHandler):
|
||||
|
||||
or triggers spawn via redirect if there is no form.
|
||||
"""
|
||||
user = self.get_current_user()
|
||||
user = current_user = self.get_current_user()
|
||||
if for_user is not None and for_user != user.name:
|
||||
if not user.admin:
|
||||
raise web.HTTPError(403, "Only admins can spawn on behalf of other users")
|
||||
@@ -120,7 +120,7 @@ class SpawnHandler(BaseHandler):
|
||||
self.redirect(url)
|
||||
return
|
||||
if user.spawner.options_form:
|
||||
form = yield self._render_form()
|
||||
form = yield self._render_form(for_user=user)
|
||||
self.finish(form)
|
||||
else:
|
||||
# Explicit spawn request: clear _spawn_future
|
||||
@@ -135,7 +135,7 @@ class SpawnHandler(BaseHandler):
|
||||
@gen.coroutine
|
||||
def post(self, for_user=None):
|
||||
"""POST spawns with user-specified options"""
|
||||
user = self.get_current_user()
|
||||
user = current_user = self.get_current_user()
|
||||
if for_user is not None and for_user != user.name:
|
||||
if not user.admin:
|
||||
raise web.HTTPError(403, "Only admins can spawn on behalf of other users")
|
||||
@@ -161,9 +161,11 @@ class SpawnHandler(BaseHandler):
|
||||
yield self.spawn_single_user(user, options=options)
|
||||
except Exception as e:
|
||||
self.log.error("Failed to spawn single-user server with form", exc_info=True)
|
||||
self.finish(self._render_form(str(e)))
|
||||
form = yield self._render_form(message=str(e), for_usr=user)
|
||||
self.finish(form)
|
||||
return
|
||||
self.set_login_cookie(user)
|
||||
if current_user is user:
|
||||
self.set_login_cookie(user)
|
||||
url = user.url
|
||||
|
||||
next_url = self.get_argument('next', '')
|
||||
|
Reference in New Issue
Block a user