clea up code and layout

This commit is contained in:
knedlik
2025-12-10 22:52:22 +01:00
parent 7f21716358
commit e2091ec677
11 changed files with 211 additions and 86 deletions

View File

@@ -1,52 +1,115 @@
import streamlit as st
from auth_runtime import require_login
from ui.sidebar import hide_sidebar_if_logged_out
from ui.sidebar import build_sidebar
from auth import create_user
from pathlib import Path
from tools.check_permission import check
from tools.load_css import load_css
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()
load_css()
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")
st.session_state["authenticator"] = authenticator
if check(df,DASH_NAME) == False:
st.markdown("**FEHLER**")
st.error("Die Seite kann nicht angezeigt werden - keine Berechtigung!")
st.stop()
def sidebar():
st.title("Benutzerverwaltung")
fullname = st.session_state.get("fullname")
role_text = st.session_state.get("role_text")
with st.sidebar:
st.logo("app/images/GMN_Logo_neu_rgb.png", size="small")
st.markdown(f"**{fullname}** ({role_text})")
col1, col2, col3 = st.columns([2,2,1])
# with col1:
# if st.button("Logout", use_container_width=True):
# st.rerun()
with col1:
authenticator.logout("Logout")
# st.rerun()
# if st.button("Home", use_container_width=True):
# st.switch_page("pages/home.py")
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")
with col2:
if st.button("🏠 Home", use_container_width=True):
st.switch_page("pages/home.py")
user()
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.")
def user():
st.header("Benutzerverwaltung")
st.subheader("Dein Bereich")
st.write(f"Personalisierter Content für **{username}**.")
if __name__ == "__main__":
sidebar()
# 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()
# df = st.session_state.get("df_sidebar")
# st.text(DASH_NAME)
# st.text(st.session_state.get(username))
# print(df)
# 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}**.")