fix: in SpawnHandler check if named servers are allowed before launching a named server, check also limit of named servers

This commit is contained in:
Kenan Erdogan
2019-10-11 16:02:36 +02:00
parent 89b0c421d5
commit 25ef67e8e0

View File

@@ -118,6 +118,23 @@ class SpawnHandler(BaseHandler):
if user is None:
raise web.HTTPError(404, "No such user: %s" % for_user)
if server_name:
if not self.allow_named_servers:
raise web.HTTPError(400, "Named servers are not enabled.")
if (
self.named_server_limit_per_user > 0
and server_name not in user.orm_spawners
):
named_spawners = list(user.all_spawners(include_default=False))
if self.named_server_limit_per_user <= len(named_spawners):
raise web.HTTPError(
400,
"User {} already has the maximum of {} named servers."
" One must be deleted before a new server can be created".format(
user.name, self.named_server_limit_per_user
),
)
if not self.allow_named_servers and user.running:
url = self.get_next_url(user, default=user.server_url(server_name))
self.log.info("User is running: %s", user.name)