Add tool numgen
This commit is contained in:
@@ -1,182 +1,6 @@
|
||||
|
||||
|
||||
# import streamlit as st
|
||||
# import pandas as pd
|
||||
|
||||
# from db_users import init_db, get_user, update_user, set_password # wie zuvor
|
||||
# from db_users_search import search_users # wie zuvor
|
||||
|
||||
# st.set_page_config(layout="wide")
|
||||
# init_db()
|
||||
|
||||
# if "selected_user_id" not in st.session_state:
|
||||
# st.session_state.selected_user_id = None
|
||||
|
||||
# def open_edit(user_id: int):
|
||||
# st.session_state.selected_user_id = user_id
|
||||
# st.session_state.show_edit = True
|
||||
|
||||
# @st.dialog("Benutzer bearbeiten")
|
||||
# def edit_user_dialog(user_id: int):
|
||||
# user = get_user(user_id)
|
||||
# if not user:
|
||||
# st.error("Benutzer nicht gefunden.")
|
||||
# return
|
||||
|
||||
# st.markdown(f"**{user['username']}** (ID {user['id']})")
|
||||
|
||||
# with st.form("edit_user_form"):
|
||||
# display_name = st.text_input("Anzeigename", value=user.get("display_name") or "")
|
||||
# email = st.text_input("E-Mail", value=user.get("email") or "")
|
||||
# role = st.selectbox("Rolle", ["user", "admin"], index=0 if user["role"] == "user" else 1)
|
||||
# is_active = st.checkbox("Aktiv", value=bool(user["is_active"]))
|
||||
# save = st.form_submit_button("Speichern")
|
||||
|
||||
# if save:
|
||||
# update_user(user_id, display_name, email, role, is_active)
|
||||
# st.success("Gespeichert.")
|
||||
# st.session_state.show_edit = False
|
||||
# st.rerun()
|
||||
|
||||
# st.divider()
|
||||
|
||||
# st.markdown("**Passwort zurücksetzen**")
|
||||
# with st.form("pw_form", clear_on_submit=True):
|
||||
# pw = st.text_input("Neues Passwort", type="password")
|
||||
# pw_save = st.form_submit_button("Passwort setzen")
|
||||
# if pw_save:
|
||||
# if not pw:
|
||||
# st.error("Bitte Passwort eingeben.")
|
||||
# else:
|
||||
# set_password(user_id, pw)
|
||||
# st.success("Passwort aktualisiert.")
|
||||
# st.session_state.show_edit = False
|
||||
# st.rerun()
|
||||
|
||||
|
||||
# st.title("Benutzerverwaltung")
|
||||
|
||||
# q = st.text_input("Suche", placeholder="username / Name / E-Mail")
|
||||
# rows, total = search_users(q, limit=20, offset=0)
|
||||
|
||||
# st.caption(f"{total} Treffer")
|
||||
# for r in rows:
|
||||
# c1, c2, c3, c4 = st.columns([2, 2, 3, 1])
|
||||
# c1.write(r["username"])
|
||||
# c2.write(r.get("display_name") or "")
|
||||
# c3.write(r.get("email") or "")
|
||||
# if c4.button("Ändern", key=f"edit_{r['id']}"):
|
||||
# open_edit(r["id"])
|
||||
|
||||
# # Dialog öffnen, wenn Flag gesetzt
|
||||
# if st.session_state.get("show_edit") and st.session_state.selected_user_id:
|
||||
# edit_user_dialog(int(st.session_state.selected_user_id))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# # admin_users.py
|
||||
# import streamlit as st
|
||||
# import pandas as pd
|
||||
# from db_users import init_db, list_users, get_user, create_user, update_user, set_password, delete_user
|
||||
|
||||
# st.set_page_config(page_title="User Admin", layout="wide")
|
||||
# init_db()
|
||||
|
||||
# st.title("Benutzerverwaltung")
|
||||
|
||||
# # --- Übersicht ---
|
||||
# users = list_users()
|
||||
# df = pd.DataFrame(users)
|
||||
|
||||
# if df.empty:
|
||||
# st.info("Noch keine Benutzer vorhanden.")
|
||||
# df = pd.DataFrame(columns=["id","username","display_name","email","role","is_active","created_at"])
|
||||
|
||||
# st.subheader("Übersicht")
|
||||
# st.dataframe(df, use_container_width=True, hide_index=True)
|
||||
|
||||
# st.divider()
|
||||
|
||||
# colA, colB = st.columns(2, gap="large")
|
||||
|
||||
# # --- Neuen Benutzer anlegen ---
|
||||
# with colA:
|
||||
# st.subheader("Neuen Benutzer anlegen")
|
||||
# with st.form("create_user", clear_on_submit=True):
|
||||
# username = st.text_input("Username*", max_chars=50)
|
||||
# password = st.text_input("Initiales Passwort*", type="password")
|
||||
# display_name = st.text_input("Anzeigename")
|
||||
# email = st.text_input("E-Mail")
|
||||
# role = st.selectbox("Rolle", ["user", "admin"], index=0)
|
||||
# is_active = st.checkbox("Aktiv", value=True)
|
||||
# submitted = st.form_submit_button("Anlegen")
|
||||
|
||||
# if submitted:
|
||||
# if not username or not password:
|
||||
# st.error("Username und Passwort sind Pflicht.")
|
||||
# else:
|
||||
# try:
|
||||
# create_user(username, password, display_name, email, role, is_active)
|
||||
# st.success("Benutzer angelegt.")
|
||||
# st.rerun()
|
||||
# except Exception as e:
|
||||
# st.error(f"Fehler beim Anlegen: {e}")
|
||||
|
||||
# # --- Bestehenden Benutzer bearbeiten/löschen ---
|
||||
# with colB:
|
||||
# st.subheader("Benutzer bearbeiten / löschen")
|
||||
|
||||
# user_ids = df["id"].tolist() if "id" in df.columns else []
|
||||
# selected_id = st.selectbox("Benutzer wählen", user_ids, format_func=lambda uid: f"{uid} – {df.loc[df.id==uid,'username'].values[0] if len(df)>0 else uid}" if uid in user_ids else str(uid))
|
||||
|
||||
# user = get_user(int(selected_id)) if selected_id else None
|
||||
# if user:
|
||||
# with st.form("edit_user"):
|
||||
# display_name2 = st.text_input("Anzeigename", value=user.get("display_name") or "")
|
||||
# email2 = st.text_input("E-Mail", value=user.get("email") or "")
|
||||
# role2 = st.selectbox("Rolle", ["user", "admin"], index=0 if user["role"]=="user" else 1)
|
||||
# is_active2 = st.checkbox("Aktiv", value=bool(user["is_active"]))
|
||||
# save = st.form_submit_button("Änderungen speichern")
|
||||
|
||||
# if save:
|
||||
# update_user(int(selected_id), display_name2, email2, role2, is_active2)
|
||||
# st.success("Gespeichert.")
|
||||
# st.rerun()
|
||||
|
||||
# st.markdown("**Passwort zurücksetzen**")
|
||||
# with st.form("reset_pw", clear_on_submit=True):
|
||||
# new_pw = st.text_input("Neues Passwort", type="password")
|
||||
# reset = st.form_submit_button("Passwort setzen")
|
||||
# if reset:
|
||||
# if not new_pw:
|
||||
# st.error("Bitte ein Passwort eingeben.")
|
||||
# else:
|
||||
# set_password(int(selected_id), new_pw)
|
||||
# st.success("Passwort aktualisiert.")
|
||||
|
||||
# st.markdown("**Löschen**")
|
||||
# confirm = st.checkbox("Ich möchte diesen Benutzer wirklich löschen.")
|
||||
# if st.button("Benutzer löschen", disabled=not confirm):
|
||||
# delete_user(int(selected_id))
|
||||
# st.success("Benutzer gelöscht.")
|
||||
# st.rerun()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
import streamlit as st
|
||||
from auth_runtime import require_login
|
||||
from ui.sidebar import build_sidebar
|
||||
# from ui.sidebar import build_sidebar
|
||||
from auth import create_user
|
||||
from pathlib import Path
|
||||
from tools.load_css import load_css
|
||||
|
||||
Reference in New Issue
Block a user