Resolve comments

This commit is contained in:
0mar
2021-04-07 10:37:49 +02:00
parent 71a5842ad2
commit 2f34557689
3 changed files with 19 additions and 10 deletions

View File

@@ -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

View File

@@ -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'))

View File

@@ -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,