Frontend: Account-Bereich (GET /user/info, POST /user/delete)
- Account-Section nur sichtbar wenn eingeloggt; zeigt Nutzername und Mitglied-seit-Datum aus /user/info - Konto loeschen in aufklappbarer Danger-Zone, Passwortbestaetigung plus zusaetzliche confirm()-Rueckfrage (unwiderruflich) - nach Loeschung zurueck zur Login-Ansicht via refreshHeader Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,7 @@ async function refreshHeader() {
|
||||
const bar = document.getElementById("headerbar");
|
||||
document.getElementById("auth-box").hidden = loggedIn;
|
||||
document.getElementById("compose").hidden = !loggedIn;
|
||||
document.getElementById("account").hidden = !loggedIn;
|
||||
|
||||
if (loggedIn) {
|
||||
bar.innerHTML = `<button id="logout-btn">Logout</button>`;
|
||||
@@ -32,12 +33,32 @@ async function refreshHeader() {
|
||||
await api.get("/auth/logout");
|
||||
await refreshHeader();
|
||||
});
|
||||
loadAccount();
|
||||
} else {
|
||||
bar.innerHTML = "";
|
||||
showAuth("login");
|
||||
}
|
||||
}
|
||||
|
||||
async function loadAccount() {
|
||||
const info = await api.get("/user/info");
|
||||
const since = new Date(info.created_at * 1000).toLocaleDateString("de-DE");
|
||||
document.getElementById("account-info").textContent =
|
||||
`Angemeldet als ${info.username} · Mitglied seit ${since}`;
|
||||
}
|
||||
|
||||
document.getElementById("delete-form").addEventListener("submit", async (e) => {
|
||||
e.preventDefault();
|
||||
if (!confirm("Konto wirklich unwiderruflich löschen?")) return;
|
||||
const res = await api.post("/user/delete", new FormData(e.target));
|
||||
if (res.ok) {
|
||||
await refreshHeader();
|
||||
} else {
|
||||
document.getElementById("delete-msg").textContent =
|
||||
res.data.error || "Löschen fehlgeschlagen.";
|
||||
}
|
||||
});
|
||||
|
||||
// --- Login / Registrierung ---
|
||||
const loginForm = document.getElementById("login-form");
|
||||
const registerForm = document.getElementById("register-form");
|
||||
|
||||
Reference in New Issue
Block a user