moderation preview of pictures and audio files
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user