Add session-state and cookies
This commit is contained in:
49
app/main.py
49
app/main.py
@@ -1,12 +1,13 @@
|
||||
# app/main.py
|
||||
import streamlit as st
|
||||
from version import __version__
|
||||
from logging_config import setup_logging
|
||||
import os
|
||||
from auth import login_view, authed_header, current_user, create_user, clear_session_user
|
||||
|
||||
APP_ENV = os.environ.get("APP_ENV", "dev")
|
||||
logger = setup_logging(APP_ENV)
|
||||
|
||||
from auth import (
|
||||
init_auth_db,
|
||||
ensure_logged_in,
|
||||
authed_header,
|
||||
current_user,
|
||||
create_user, # falls du Admin-Funktion brauchst
|
||||
)
|
||||
|
||||
|
||||
def content_for(role: str, username: str):
|
||||
@@ -31,40 +32,28 @@ def content_for(role: str, username: str):
|
||||
|
||||
st.subheader("Dein Bereich")
|
||||
st.write(f"Personalisierter Content für **{username}**.")
|
||||
# hier: weitere Seite(n), DB-Zugriffe etc.
|
||||
# fachliche Inhalte …
|
||||
|
||||
|
||||
def main():
|
||||
if "app_started_logged" not in st.session_state:
|
||||
logger.info(f"Starting app in {APP_ENV} mode - APP-Version {__version__}")
|
||||
st.session_state["app_started_logged"] = True
|
||||
# logger.info(f"User Starting app in {APP_ENV} mode - APP-Version {__version__}")
|
||||
st.set_page_config(
|
||||
page_title="Intranet-Portal",
|
||||
page_icon="🔒",
|
||||
layout="centered",
|
||||
)
|
||||
# Falls kein Login: Login-View anzeigen und raus
|
||||
if not st.session_state.get("auth"):
|
||||
login_view()
|
||||
return
|
||||
|
||||
# Ab hier sind wir eingeloggt
|
||||
init_auth_db()
|
||||
|
||||
# hier wird entweder:
|
||||
# - st.session_state genutzt, oder
|
||||
# - ?session_id=... aus URL geprüft, oder
|
||||
# - Login-Form gezeigt (und Script gestoppt)
|
||||
ensure_logged_in()
|
||||
|
||||
authed_header()
|
||||
username, role = current_user()
|
||||
content_for(role, username)
|
||||
|
||||
st.write(st.session_state)
|
||||
|
||||
if st.sidebar.button("set state"):
|
||||
st.session_state["app_started_logged"] = True
|
||||
#clear_session_user()
|
||||
st.write(st.session_state)
|
||||
#st.rerun()
|
||||
if st.sidebar.button("delete state"):
|
||||
st.session_state.pop("app_started_logged", None)
|
||||
#clear_session_user()
|
||||
st.write(st.session_state)
|
||||
#st.rerun()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user