async def main_handler(self, request: web.Request, session: Session): available_rooms = { room for room in GameRoom.instances.values() if room.manager.unregistered_players } if user := session.get('user'): joined_rooms = { room for room in GameRoom.instances.values() if user in room.manager.users_players }
def user_permitted(session: Session): """ :param session: :return: """ # Regular users have user role '0' hence not permitted? permitted = session.get( 'user_role') if 'user_role' in session else DEFAULT_KGE_USER_ROLE return not session.empty and permitted
def redirect_to_next_url(request: web.Request, session: Session, role: int) -> Optional[web.Response]: """Redirect to originally request URL if session contains it. Before redirect remove that URL from session, so user will not be redirected again on next request. """ key = build_next_url_key(role) url = session.get(key) if url: del session[key] return web.HTTPFound(url)
def get_id(session: Session) -> (str, None): """Return client ID if it exists; else None.""" return session.get(CLIENT_ID_KEY)
def _logged_in(s: Session) -> bool: return 'user' in s or s.get('user') is not None
async def wrapper(self, request: web.Request, session: Session): if not session.get('user', ''): raise web.HTTPFound( request.app.router['login'].url_for().with_query( {'next': request.url.raw_path_qs})) return await request_handler(self, request, session)