Files
Wegwichtel/docs/MODERATION-MEDIEN.md
T
Florian Zumpe 74090723c4
Sonarqube Scanner / Prepare environment (push) Successful in 13s
Sonarqube Scanner / Build and test (push) Successful in 33s
Sonarqube Scanner / SonarQube analysis (push) Successful in 1m38s
Sonarqube Scanner / Deploy to Server (push) Successful in 7s
sorted markdown and added favicon
2026-10-04 09:06:48 +02:00

69 lines
3.1 KiB
Markdown

# Stationen und Medien prüfen
`npm run moderate` zeigt unter jeder Strecke eine Tabelle mit Stations-ID,
Platz (ab 1, sortiert nach `sequence, id`), Beschreibung und Erstelldatum.
Bei leerer Beschreibung erscheint der Titel. Zeilenumbrüche werden nur für
die Tabellenanzeige zusammengefasst. Die Datenbank wird lesend geöffnet.
## Dauerhafte Prüflinks
In `.env` ergänzen:
```dotenv
MODERATION_REVIEW_URL=https://wegwichtel.de/moderation/api
```
Die Tabelle zeigt für jedes Bild und jede Tonaufnahme einen eigenen Link.
Gelöschte Strecken erhalten keine Links. Ohne diese Einstellung bleibt die
Linkspalte leer. Zugangsdaten gehören nicht in URLs oder `.env`.
Es gibt keine Einmal-Tokens, keine zusätzliche Datenbanktabelle und kein PHP.
Eine Datenbank-Neuinitialisierung ist für diese Änderung nicht nötig.
## Anmeldung mit Nginx und htpasswd
`nginx/moderation-review.location.conf` in den bestehenden HTTPS-server-Block
aufnehmen. Der geschützte Pfad `/moderation/api/` nutzt die vorhandene Node-API.
GET und HEAD sind erlaubt; schreibende Methoden sind gesperrt.
Nginx prüft Benutzername und Passwort und leitet die Zugangsdaten nicht an Node weiter.
Die Vorlage verweigert HTTP; die Anmeldung muss über HTTPS erfolgen.
Auf Debian/Ubuntu beispielsweise:
```bash
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/wegwichtel-moderation.htpasswd moderator
sudo chown root:www-data /etc/nginx/wegwichtel-moderation.htpasswd
sudo chmod 640 /etc/nginx/wegwichtel-moderation.htpasswd
sudo nginx -t
sudo systemctl reload nginx
```
`www-data` gegebenenfalls an den Nginx-Benutzer anpassen. `-c` nur beim ersten
Anlegen benutzen, damit bestehende Benutzer nicht überschrieben werden.
Beim Öffnen eines Prüflinks erscheint die Anmeldeabfrage des Internetbrowsers.
Bilder und Audio nutzen die bestehenden Datei-Endpunkte einschließlich Range-Requests.
Die Vorlage ersetzt nicht die vorhandene Server-Konfiguration.
Wichtig für den Umfang: Die Authentifizierung schützt den Moderationspfad.
Die bisherigen `/api/`-Endpunkte bleiben entsprechend dem bisherigen Verhalten
zugänglich, auch für noch nicht freigegebene aktive Strecken. Das entspricht
bereits online verfügbaren Daten; es ist keine Zugriffssperre für unveröffentlichte
Inhalte. Eine solche Sperre müsste separat für die öffentliche API umgesetzt werden.
## Falls das vorherige Archiv bereits eingebaut wurde
Die Dateien `tools/php/moderation-review.php` und
`test/php/test_moderation_review.py` sowie den alten PHP-Location-Block entfernen.
Den npm-Eintrag `test:php` entfernen und `MODERATION_TOKEN_TTL_SECONDS` aus `.env`
löschen. Eine bereits angelegte Tabelle `moderation_review_tokens` wird nicht
mehr benutzt; sie kann bestehen bleiben. Die neuen Dateien ersetzen keine
Datenbank und löschen keine Strecken.
## Tests
Python-Tests prüfen Tabellenreihenfolge, stabile Bild-/Audiolinks, gelöschte
Strecken, URL-Konfiguration und dass die Anzeige die SQLite-Datei nicht verändert.
Nginx muss auf dem Zielserver mit `nginx -t` und anschließend über HTTP geprüft
werden: ohne oder mit falschem Passwort 401, mit gültigem Passwort Dateiabruf;
schreibende Methoden dürfen keine Änderung auslösen.