SSR-Renderer entfernt, Fokus auf SPA + JSON-API

Die Kernlogik bleibt von der Schnittstelle getrennt; der letzte SSR-Stand
liegt im Tag ssr-archiv. Die Moderationsseite bleibt, liefert Fehler aber
als JSON.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiXsPUqw7oeomZ8wZrQW5q
This commit is contained in:
irrlicht
2026-09-26 21:28:34 +02:00
co-authored by Claude Opus 5.5
parent eccddcebe6
commit c6ab082f8c
26 changed files with 50 additions and 2603 deletions
+2 -6
View File
@@ -51,9 +51,7 @@ var blockTOR = guard(func(_ http.ResponseWriter, r *http.Request) error {
var errTORBlocked = Forbidden("tor.blocked", "Beiträge über TOR sind derzeit nicht möglich.")
// isTOR erkennt Anfragen aus dem TOR-Netz. Ausgelagert, damit die
// serverseitig gerenderten Seiten das Beitragsformular erst gar nicht anbieten,
// statt es anzuzeigen und beim Absenden abzulehnen.
// isTOR erkennt Anfragen aus dem TOR-Netz.
func isTOR(r *http.Request) bool {
if torNet == nil {
return false
@@ -71,9 +69,7 @@ func requireAuth(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
s, ok := getSession(r)
if !ok {
// Über failRequest: ohne JavaScript ist die Session-Abfrage sonst
// eine JSON-Zeile mitten im Browser.
failRequest(w, r, errAuthRequired)
writeAPIError(w, errAuthRequired)
return
}
ctx := context.WithValue(r.Context(), uidKey, s.UID)