Display-Seiten: Gäste holen sich den Zugang selbst
Für Empfang, Lobby oder Tagungsraum lässt sich je Site eine öffentliche Seite anlegen (kiosk.php), die auf einem Bildschirm oder Tablet läuft: ein großer Knopf, ein Klick, ein Zugangscode mit QR-Code. Nach einer einstellbaren Anzeigedauer springt der Bildschirm zurück, damit der nächste Gast nicht den Code seines Vorgängers sieht. Verwaltung unter Administration → Display-Seiten: - Site und optionales Voucher-Profil (bestimmt Laufzeit, Geräte, QoS) - eigene Überschrift und Text für den Bildschirm - Codes pro Tag, Wartezeit zwischen zwei Codes, Anzeigedauer - geheimer Link zum Kopieren, als QR-Code anzeigbar und jederzeit erneuerbar (der alte Link gilt dann sofort nicht mehr) Absicherung: der Link ist der Zugang, deshalb Tageslimit und Wartezeit je Display, CSRF-Token am Formular, `noindex` im Kopf und ein Eintrag im Audit-Log für jeden ausgegebenen Code. Webhooks werden für Kiosk-Codes bewusst nicht ausgelöst – ein Empfangsdisplay würde den Kanal fluten. Technik: - neue Tabelle `kiosks`, `vouchers.kiosk_id` hält die Herkunft fest (Migration 0005, database.sql nachgezogen) - includes/Kiosk.php kapselt Token, Limits und Profil-Auflösung - includes/VoucherService.php bündelt die Voucher-Erstellung, die vorher in index.php lag und für den Kiosk ein zweites Mal nötig gewesen wäre - Startbildschirm zeigt zusätzlich einen QR auf sich selbst, damit Gäste die Seite am eigenen Handy öffnen können Tests: 9 neue Fälle für Token-Prüfung, Wartezeit, Tageslimit und Profil-Auflösung (38 Tests gesamt), PHPStan deckt Kiosk.php mit ab. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
5d72febadc
commit
61810eb050
30 changed files with 1360 additions and 29 deletions
50
Readme.md
50
Readme.md
|
|
@ -28,6 +28,7 @@ Entwickelt von **[Loheide.eu](https://loheide.eu)**
|
|||
## ✨ Features
|
||||
|
||||
- 🎟️ **Voucher-Erstellung** mit sofortiger QR-Code-Anzeige, Druckvorlage und E-Mail-Versand
|
||||
- 🖥️ **Display-Seiten (Kiosk)** – öffentliche Seite je Site, an der Gäste sich mit einem Klick selbst einen Zugang holen
|
||||
- 📦 **Bulk-Erstellung** – bis zu 20 Vouchers auf einmal, inkl. Sammeldruck-Layout
|
||||
- 🧩 **Voucher-Profile/Templates** – vordefinierte Laufzeiten & Gerätelimits per Schnellauswahl
|
||||
- 🏢 **Multi-Site-Support** – beliebig viele UniFi-Standorte zentral verwalten
|
||||
|
|
@ -83,6 +84,13 @@ Entwickelt von **[Loheide.eu](https://loheide.eu)**
|
|||
<img src="docs/screenshots/settings-login.png" alt="Einstellungen der Login-Seite" width="48%">
|
||||
</div>
|
||||
|
||||
### Display-Seite für Gäste
|
||||
|
||||
<div align="center">
|
||||
<img src="docs/screenshots/kiosk-display.png" alt="Display-Seite im Ruhezustand" width="48%">
|
||||
<img src="docs/screenshots/kiosk-code.png" alt="Ausgegebener Zugangscode auf dem Display" width="48%">
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<img src="docs/screenshots/voucher-result.png" alt="Voucher-Ergebnis mit QR-Code" width="48%">
|
||||
<img src="docs/screenshots/bulk-vouchers.png" alt="Bulk-Voucher-Erstellung" width="48%">
|
||||
|
|
@ -214,6 +222,47 @@ Während eines Updates wird die Anwendung kurz in den **Wartungsmodus** versetzt
|
|||
|
||||
---
|
||||
|
||||
## 🖥️ Display-Seiten für Gäste
|
||||
|
||||
Für Empfang, Lobby oder Tagungsraum lässt sich je Site eine **öffentliche Seite**
|
||||
anlegen, die auf einem Bildschirm oder Tablet läuft. Gäste tippen auf einen
|
||||
Knopf und bekommen sofort einen eigenen Zugangscode – ohne Anmeldung, ohne
|
||||
Personal am Tresen.
|
||||
|
||||
**Anlegen:** Administration → **Display-Seiten** → *Display-Seite anlegen*
|
||||
|
||||
<div align="center">
|
||||
<img src="docs/screenshots/kiosks-admin.png" alt="Verwaltung der Display-Seiten" width="80%">
|
||||
</div>
|
||||
|
||||
| Einstellung | Wirkung |
|
||||
|---|---|
|
||||
| Site | für welchen Standort die Codes erzeugt werden |
|
||||
| Voucher-Profil | Laufzeit, Geräteanzahl und Bandbreite der Codes (leer = Standardwerte) |
|
||||
| Überschrift / Text | was auf dem Bildschirm steht |
|
||||
| Codes pro Tag | Obergrenze je Kalendertag (0 = unbegrenzt) |
|
||||
| Wartezeit | Abstand zwischen zwei Codes an diesem Display |
|
||||
| Anzeigedauer | danach springt der Bildschirm automatisch zurück |
|
||||
|
||||
Jede Seite hat einen **eigenen, geheimen Link** (`kiosk.php?k=…`). Er lässt sich
|
||||
kopieren, als QR-Code anzeigen (praktisch, um ihn am Tablet zu öffnen) und
|
||||
jederzeit erneuern – der alte Link ist dann sofort ungültig. Den Link nicht
|
||||
öffentlich verbreiten: wer ihn hat, kann im Rahmen der Limits Codes ziehen.
|
||||
|
||||
Auf dem Startbildschirm steht zusätzlich ein QR-Code, der auf dieselbe Seite
|
||||
zeigt. Gäste können sie damit **am eigenen Handy** öffnen – praktisch bei
|
||||
Bildschirmen ohne Touch.
|
||||
|
||||
Die ausgegebenen Codes erscheinen normal in *Live Vouchers*, im *Reporting* und
|
||||
im *Audit-Log* (Aktion „Voucher am Display geholt"), sodass jederzeit
|
||||
nachvollziehbar bleibt, woher ein Zugang stammt.
|
||||
|
||||
> Display-Seiten funktionieren unabhängig vom globalen öffentlichen Modus – der
|
||||
> geheime Link ist der Zugang. Webhook-Benachrichtigungen werden für diese Codes
|
||||
> bewusst **nicht** ausgelöst, sonst wäre der Slack-Kanal voll.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Konfiguration
|
||||
|
||||
### `config.php`
|
||||
|
|
@ -605,6 +654,7 @@ dem Git-Hoster.
|
|||
- [x] Branding über die Oberfläche (Farben, Logo, Login-Seite)
|
||||
- [x] Assets lokal ausliefern (keine Drittanbieter-CDNs)
|
||||
- [x] Vollständige englische Übersetzung des Admin-Bereichs
|
||||
- [x] Display-Seiten: Selbstbedienung für Gäste am Bildschirm
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue