mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-12 20:43:02 +00:00
Resolve comments
This commit is contained in:
@@ -175,7 +175,7 @@ class APIHandler(BaseHandler):
|
|||||||
json.dumps({'status': status_code, 'message': message or status_message})
|
json.dumps({'status': status_code, 'message': message or status_message})
|
||||||
)
|
)
|
||||||
|
|
||||||
def server_model(self, spawner, include_state=False):
|
def server_model(self, spawner):
|
||||||
"""Get the JSON model for a Spawner"""
|
"""Get the JSON model for a Spawner"""
|
||||||
server_scope = 'read:users:servers'
|
server_scope = 'read:users:servers'
|
||||||
server_state_scope = 'admin:users:server_state'
|
server_state_scope = 'admin:users:server_state'
|
||||||
@@ -250,7 +250,7 @@ class APIHandler(BaseHandler):
|
|||||||
'pending': None,
|
'pending': None,
|
||||||
'created': isoformat(user.created),
|
'created': isoformat(user.created),
|
||||||
'last_activity': isoformat(user.last_activity),
|
'last_activity': isoformat(user.last_activity),
|
||||||
'auth_state': '', # placeholder, filled in later
|
'auth_state': None, # placeholder, filled in later
|
||||||
}
|
}
|
||||||
access_map = {
|
access_map = {
|
||||||
'read:users': {
|
'read:users': {
|
||||||
@@ -297,23 +297,31 @@ class APIHandler(BaseHandler):
|
|||||||
|
|
||||||
def group_model(self, group):
|
def group_model(self, group):
|
||||||
"""Get the JSON model for a Group object"""
|
"""Get the JSON model for a Group object"""
|
||||||
model = {'kind': 'group', 'name': group.name}
|
model = {}
|
||||||
req_scope = 'read:groups'
|
req_scope = 'read:groups'
|
||||||
if req_scope in self.parsed_scopes:
|
if req_scope in self.parsed_scopes:
|
||||||
scope_filter = self.get_scope_filter(req_scope)
|
scope_filter = self.get_scope_filter(req_scope)
|
||||||
if scope_filter(group, kind='group'):
|
if scope_filter(group, kind='group'):
|
||||||
model['users'] = [u.name for u in group.users]
|
model = {
|
||||||
|
'kind': 'group',
|
||||||
|
'name': group.name,
|
||||||
|
'users': [u.name for u in group.users],
|
||||||
|
}
|
||||||
return model
|
return model
|
||||||
|
|
||||||
def service_model(self, service):
|
def service_model(self, service):
|
||||||
"""Get the JSON model for a Service object"""
|
"""Get the JSON model for a Service object"""
|
||||||
model = {'kind': 'service', 'name': service.name}
|
model = {}
|
||||||
req_scope = 'read:services'
|
req_scope = 'read:services'
|
||||||
if req_scope in self.parsed_scopes:
|
if req_scope in self.parsed_scopes:
|
||||||
scope_filter = self.get_scope_filter(req_scope)
|
scope_filter = self.get_scope_filter(req_scope)
|
||||||
if scope_filter(service, kind='service'):
|
if scope_filter(service, kind='service'):
|
||||||
model['roles'] = [r.name for r in service.roles]
|
model = {
|
||||||
model['admin'] = service.admin
|
'kind': 'service',
|
||||||
|
'name': service.name,
|
||||||
|
'roles': [r.name for r in service.roles],
|
||||||
|
'admin': service.admin,
|
||||||
|
}
|
||||||
# todo: Remove once we replace admin flag with role check
|
# todo: Remove once we replace admin flag with role check
|
||||||
return model
|
return model
|
||||||
|
|
||||||
|
@@ -159,7 +159,6 @@ def fill_user(model):
|
|||||||
model.setdefault('created', TIMESTAMP)
|
model.setdefault('created', TIMESTAMP)
|
||||||
model.setdefault('last_activity', TIMESTAMP)
|
model.setdefault('last_activity', TIMESTAMP)
|
||||||
model.setdefault('servers', {})
|
model.setdefault('servers', {})
|
||||||
model.setdefault('auth_state', '')
|
|
||||||
return model
|
return model
|
||||||
|
|
||||||
|
|
||||||
@@ -180,9 +179,12 @@ async def test_get_users(app):
|
|||||||
'admin': False,
|
'admin': False,
|
||||||
'roles': ['user'],
|
'roles': ['user'],
|
||||||
'last_activity': None,
|
'last_activity': None,
|
||||||
|
'auth_state': None,
|
||||||
}
|
}
|
||||||
assert users == [
|
assert users == [
|
||||||
fill_user({'name': 'admin', 'admin': True, 'roles': ['admin']}),
|
fill_user(
|
||||||
|
{'name': 'admin', 'admin': True, 'roles': ['admin'], 'auth_state': None}
|
||||||
|
),
|
||||||
fill_user(user_model),
|
fill_user(user_model),
|
||||||
]
|
]
|
||||||
r = await api_request(app, 'users', headers=auth_header(db, 'user'))
|
r = await api_request(app, 'users', headers=auth_header(db, 'user'))
|
||||||
|
@@ -52,7 +52,6 @@ async def test_default_server(app, named_servers):
|
|||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
|
|
||||||
user_model = normalize_user(r.json())
|
user_model = normalize_user(r.json())
|
||||||
print(user_model)
|
|
||||||
assert user_model == fill_user(
|
assert user_model == fill_user(
|
||||||
{
|
{
|
||||||
'name': username,
|
'name': username,
|
||||||
|
Reference in New Issue
Block a user