import streamlit as st from version import __version__ from logging_config import setup_logging import os from auth import init_auth_db, ensure_logged_in, login_view, authed_header, current_user, create_user, clear_session_user APP_ENV = os.environ.get("APP_ENV", "dev") logger = setup_logging(APP_ENV) def content_for(role: str, username: str): st.header("Dashboard") st.info(f"Willkommen, {username}!") if role == "admin": st.subheader("Admin-Bereich") st.write("Nur Admins sehen das hier.") with st.expander("Neuen Nutzer anlegen"): new_u = st.text_input("Neuer Username", key="new_u") new_p = st.text_input("Neues Passwort", type="password", key="new_p") new_role = st.selectbox("Rolle", ["user", "admin"], key="new_role") if st.button("Anlegen"): if new_u and new_p: ok = create_user(new_u.strip(), new_p, new_role) st.success("Nutzer angelegt.") if ok else st.error( "Username bereits vorhanden." ) else: st.warning("Bitte Username und Passwort eingeben.") st.subheader("Dein Bereich") st.write(f"Personalisierter Content für **{username}**.") # hier: weitere Seite(n), DB-Zugriffe etc. 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 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()