69 lines
3.1 KiB
Markdown
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.
|