Impressum, Datenschutzerklärung und DSGVO-Löschfunktion

- /impressum (§ 5 DDG) und /datenschutz als öffentliche Seiten im
  Brand-Look; Betreiber-Angaben (Name, Anschrift, E-Mail, Zusatz)
  liegen als Settings und sind bewusst Owner-only — Team-Mitglieder
  mit settings-Scope kommen an die private Anschrift nicht heran
- Die Datenschutzerklärung beschreibt die tatsächliche Verarbeitung
  dieser Instanz: Server-Logs, Session-Cookies (einwilligungsfrei nach
  § 25 Abs. 2 TDDDG, kein Tracking), Discord-Login, Level, Wünsche,
  Geburtstage, Playtester/Alpha-Keys, Bewerbungen, Tickets/Modmail,
  Erinnerungen, Moderation und Audit-Log
- DSGVO Art. 17: DELETE /api/profile löscht XP, Geburtstag,
  Playtester-Eintrag, Abstimmungen, Erinnerungen, Rollen-Sicherung,
  Giveaway-Teilnahmen und gibt den Alpha-Key wieder frei; Button im
  Profil unter „Meine Daten", Löschung landet im Audit-Log
- Footer verlinkt beide Rechtstexte, neues GET /api/legal (öffentlich)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-31 13:19:33 +02:00
co-authored by Claude Fable 5
parent 676fc45bb1
commit 8853bce2ec
10 changed files with 464 additions and 4 deletions
+38
View File
@@ -1473,3 +1473,41 @@ a.sha:hover { border-color: var(--neon); background: rgba(245, 197, 24, .07); }
text-decoration: none;
}
.card-permalink:hover { opacity: 1; }
/* ── RECHTSTEXTE (Impressum / Datenschutz) ─────────── */
.legal-text { max-width: 780px; }
.legal-text .settings-title { margin-top: 2.2rem; }
.legal-text .settings-title:first-of-type { margin-top: 0; }
.legal-text p {
color: var(--muted); font-weight: 300; line-height: 1.75;
margin-bottom: 1rem;
}
.legal-text strong { color: var(--text); font-weight: 600; }
.legal-text a { color: var(--neon); border-bottom: 1px solid rgba(245, 197, 24, .3); }
.legal-text a:hover { border-bottom-color: var(--neon); }
.legal-text code {
font-family: var(--mono); font-size: .85em;
background: var(--bg3); border: 1px solid var(--border);
border-radius: 4px; padding: .05rem .35rem; color: var(--text);
}
.legal-list { list-style: none; margin: 0 0 1rem; padding: 0; }
.legal-list li {
position: relative; padding-left: 1.4rem; margin-bottom: .7rem;
color: var(--muted); font-weight: 300; line-height: 1.7;
}
.legal-list li::before {
content: '▸'; position: absolute; left: 0; color: var(--neon2);
}
/* Lösch-Bereich im Profil */
.danger-zone {
border: 1px solid rgba(242, 63, 67, .25);
border-radius: 12px; padding: 1.2rem 1.4rem;
background: rgba(242, 63, 67, .03);
}
.danger-zone .settings-title { color: #f23f43; }
.danger-zone .settings-title::after {
background: linear-gradient(90deg, rgba(242, 63, 67, .35), transparent);
}
.btn-danger { border-color: rgba(242, 63, 67, .5); color: #f23f43; }
.btn-danger:hover { border-color: #f23f43; background: rgba(242, 63, 67, .1); }