from typing import Optional from rio import URL, GuardEvent from src.ezgg_lan_manager.services.UserService import UserService from src.ezgg_lan_manager.types.SessionStorage import SessionStorage # Guards pages against access from users that are NOT logged in def logged_in_guard(event: GuardEvent) -> Optional[URL]: if event.session[SessionStorage].user_id is None: return URL("./") # Guards pages against access from users that ARE logged in def not_logged_in_guard(event: GuardEvent) -> Optional[URL]: if event.session[SessionStorage].user_id is not None: return URL("./") # Guards pages against access from users that are NOT logged in and NOT team members def team_guard(event: GuardEvent) -> Optional[URL]: user_id = event.session[SessionStorage].user_id is_team_member = event.session[SessionStorage].is_team_member if user_id is None or not is_team_member: return URL("./")