diff --git a/src/EzLanManager.py b/src/EzLanManager.py index 87d0873..f535f99 100644 --- a/src/EzLanManager.py +++ b/src/EzLanManager.py @@ -6,6 +6,7 @@ from rio import App, Theme, Color, Font, Page, Session from from_root import from_root from src.ez_lan_manager import pages, init_services +from src.ez_lan_manager.helpers.LoggedInGuard import logged_in_guard from src.ez_lan_manager.types.SessionStorage import SessionStorage logger = logging.getLogger(__name__.split(".")[-1]) @@ -105,10 +106,23 @@ if __name__ == "__main__": page_url="forgot-password", build=lambda: pages.PlaceholderPage(placeholder_name="Passwort vergessen"), ), + Page( + name="EditProfile", + page_url="edit-profile", + build=lambda: pages.PlaceholderPage(placeholder_name="Profil bearbeiten"), + guard=logged_in_guard + ), + Page( + name="Account", + page_url="account", + build=lambda: pages.PlaceholderPage(placeholder_name="Guthabenkonto"), + guard=logged_in_guard + ), Page( name="Logout", page_url="logout", build=pages.LogoutPage, + guard=logged_in_guard ) ], theme=theme, diff --git a/src/ez_lan_manager/helpers/LoggedInGuard.py b/src/ez_lan_manager/helpers/LoggedInGuard.py new file mode 100644 index 0000000..0002984 --- /dev/null +++ b/src/ez_lan_manager/helpers/LoggedInGuard.py @@ -0,0 +1,10 @@ +from typing import Optional + +from rio import Session, URL + +from src.ez_lan_manager.types.SessionStorage import SessionStorage + + +def logged_in_guard(session: Session, _) -> Optional[URL]: + if session[SessionStorage].user_id is None: + return URL("./")