initialize new admin users with default roles

it was possible for a user in `admin_users` to not get the `user` role
This commit is contained in:
Min RK
2021-12-22 10:00:08 +01:00
parent 39b331df1b
commit b2ce6023e1
2 changed files with 9 additions and 1 deletions

View File

@@ -1903,6 +1903,7 @@ class JupyterHub(Application):
user = orm.User.find(db, name) user = orm.User.find(db, name)
if user is None: if user is None:
user = orm.User(name=name, admin=True) user = orm.User(name=name, admin=True)
roles.assign_default_roles(self.db, entity=user)
new_users.append(user) new_users.append(user)
db.add(user) db.add(user)
else: else:

View File

@@ -188,6 +188,8 @@ def normalize_user(user):
""" """
for key in ('created', 'last_activity'): for key in ('created', 'last_activity'):
user[key] = normalize_timestamp(user[key]) user[key] = normalize_timestamp(user[key])
if 'roles' in user:
user['roles'] = sorted(user['roles'])
if 'servers' in user: if 'servers' in user:
for server in user['servers'].values(): for server in user['servers'].values():
for key in ('started', 'last_activity'): for key in ('started', 'last_activity'):
@@ -240,7 +242,12 @@ async def test_get_users(app):
} }
assert users == [ assert users == [
fill_user( fill_user(
{'name': 'admin', 'admin': True, 'roles': ['admin'], 'auth_state': None} {
'name': 'admin',
'admin': True,
'roles': ['admin', 'user'],
'auth_state': None,
}
), ),
fill_user(user_model), fill_user(user_model),
] ]