import streamlit as st from auth_runtime import require_login from ui.sidebar import hide_sidebar_if_logged_out from auth import create_user from pathlib import Path from tools.check_permission import check DASH_NAME = Path(__file__).stem # Hier muss die dash_id aus der DB stehen -> wird gegen die session_state geprüft (User-Berechtigung) hide_sidebar_if_logged_out() st.set_page_config(page_title="Co-App Benutzer", page_icon="🏠") authenticator = require_login() username = st.session_state.get("username") df = st.session_state.get("df_sidebar") if check(df,DASH_NAME) == False: st.markdown("**FEHLER**") st.error("Die Seite kann nicht angezeigt werden - keine Berechtigung!") st.stop() st.title("Benutzerverwaltung") with st.expander("Neuen Nutzer anlegen"): new_u = st.text_input("Neuer Username", key="new_u") new_fname = st.text_input("Vorname", key="new_fname") new_lname = st.text_input("Nachname", key="new_lname") new_email = st.text_input("E-Mail", key="new_email") 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, new_email.strip() or None, new_fname.strip() or None, new_lname.strip() or None, ) st.success("Nutzer angelegt.") if ok else st.error( "Username bereits vorhanden oder Fehler." ) else: st.warning("Bitte Username und Passwort eingeben.") st.subheader("Dein Bereich") st.write(f"Personalisierter Content für **{username}**.")