Add navigation in sidebar
This commit is contained in:
34
app/dashboards/Benutzer.py
Normal file
34
app/dashboards/Benutzer.py
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
import streamlit as st
|
||||
from auth import create_user
|
||||
|
||||
def render(username: str, role: str):
|
||||
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}**.")
|
||||
|
||||
24
app/dashboards/__init__.py
Normal file
24
app/dashboards/__init__.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import importlib
|
||||
|
||||
def get_dashboard_renderer(code: str):
|
||||
"""
|
||||
Liefert die passende Render-Funktion zum Dashboard-Code.
|
||||
- "home" -> interne Funktion home_dashboard
|
||||
- alles andere -> Modul app.dashboards.<code> mit Funktion render(username, role)
|
||||
"""
|
||||
if code == "home":
|
||||
return home_dashboard
|
||||
|
||||
module_name = f"app.dashboards.{code}"
|
||||
try:
|
||||
module = importlib.import_module(module_name)
|
||||
except ModuleNotFoundError:
|
||||
# Zum Debuggen:
|
||||
st.error(f"Modul '{module_name}' wurde nicht gefunden.")
|
||||
return None
|
||||
|
||||
if not hasattr(module, "render"):
|
||||
st.error(f"Modul '{module_name}' hat keine Funktion render().")
|
||||
return None
|
||||
|
||||
return module.render
|
||||
Reference in New Issue
Block a user