From 468738a3df34766b898f6aba60b9495d7d154b5b Mon Sep 17 00:00:00 2001 From: Min RK Date: Tue, 3 Aug 2021 20:43:38 +0200 Subject: [PATCH] don't omit server model if it's empty if request has access to read servers, leave it present and empty only omit it if there's no access to read server models --- jupyterhub/apihandlers/base.py | 5 ++++- jupyterhub/tests/test_api.py | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/jupyterhub/apihandlers/base.py b/jupyterhub/apihandlers/base.py index d792d542..46394758 100644 --- a/jupyterhub/apihandlers/base.py +++ b/jupyterhub/apihandlers/base.py @@ -243,7 +243,10 @@ class APIHandler(BaseHandler): # (this includes pending events) if spawner.active and scope_filter(spawner, kind='server'): servers[name] = self.server_model(spawner) - if not servers: + if not servers and 'servers' not in allowed_keys: + # omit servers if no access + # leave present and empty + # if request has access to read servers in general model.pop('servers') return model diff --git a/jupyterhub/tests/test_api.py b/jupyterhub/tests/test_api.py index 674f45bc..2b5bc9d3 100644 --- a/jupyterhub/tests/test_api.py +++ b/jupyterhub/tests/test_api.py @@ -154,11 +154,10 @@ def fill_user(model): model.setdefault('roles', []) model.setdefault('groups', []) model.setdefault('admin', False) - model.setdefault('server', None) model.setdefault('pending', None) model.setdefault('created', TIMESTAMP) model.setdefault('last_activity', TIMESTAMP) - # model.setdefault('servers', {}) + model.setdefault('servers', {}) return model