Merge master into rbac

This commit is contained in:
Min RK
2021-01-27 12:39:02 +01:00
27 changed files with 328 additions and 74 deletions

View File

@@ -498,6 +498,11 @@ class BaseHandler(RequestHandler):
path=url_path_join(self.base_url, 'services'),
**kwargs,
)
# clear tornado cookie
self.clear_cookie(
'_xsrf',
**self.settings.get('xsrf_cookie_kwargs', {}),
)
# Reset _jupyterhub_user
self._jupyterhub_user = None
@@ -1192,8 +1197,8 @@ class BaseHandler(RequestHandler):
"""
Render jinja2 template
If sync is set to True, we return an awaitable
If sync is set to False, we render the template & return a string
If sync is set to True, we render the template & return a string
If sync is set to False, we return an awaitable
"""
template_ns = {}
template_ns.update(self.template_namespace)

View File

@@ -459,7 +459,8 @@ class AdminHandler(BaseHandler):
@needs_scope('admin:users')
@needs_scope('admin:users:servers')
async def get(self):
page, per_page, offset = Pagination(config=self.config).get_page_args(self)
pagination = Pagination(url=self.request.uri, config=self.config)
page, per_page, offset = pagination.get_page_args(self)
available = {'name', 'admin', 'running', 'last_activity'}
default_sort = ['admin', 'name']
@@ -502,27 +503,24 @@ class AdminHandler(BaseHandler):
# get User.col.desc() order objects
ordered = [getattr(c, o)() for c, o in zip(cols, orders)]
query = self.db.query(orm.User).outerjoin(orm.Spawner).distinct(orm.User.id)
subquery = query.subquery("users")
users = (
self.db.query(orm.User)
.select_entity_from(subquery)
.outerjoin(orm.Spawner)
.order_by(*ordered)
.limit(per_page)
.offset(offset)
)
users = [self._user_from_orm(u) for u in users]
running = []
for u in users:
running.extend(s for s in u.spawners.values() if s.active)
total = self.db.query(orm.User.id).count()
pagination = Pagination(
url=self.request.uri,
total=total,
page=page,
per_page=per_page,
config=self.config,
)
pagination.total = query.count()
auth_state = await self.current_user.get_auth_state()
html = await self.render_template(