Vier Luecken geschlossen, die im Alltag sofort aufgefallen waeren: - Passwort aendern war im eingeloggten Zustand gar nicht moeglich; es gab nur den Reset per Mail-Link. saas_change_password() prueft das aktuelle Passwort, verlangt ein tatsaechlich anderes und erneuert danach die Session-ID. Formular in konto.php. - mandant-auswahl.php war nur direkt nach dem Login erreichbar. Wer bei mehreren Mandanten Mitglied ist, musste sich zum Wechseln abmelden. Die Seite bedient jetzt beide Wege, die Mandantenpruefung bleibt unveraendert ueber saas_identity_for_user_tenant(). Menuepunkt ab zwei Mitgliedschaften. - email_verified_at wurde nirgends geprueft, nur angezeigt - bei offener Selbstregistrierung konnte sich jemand mit fremder Adresse anmelden und alles nutzen. Erzwungen wird jetzt gezielt dort, wo eine Aktion nach aussen wirkt: Einladung, Info-Mail, Jahresabschluss. Der Login selbst bleibt bewusst frei, sonst waeren alle migrierten Bestandsnutzer mit NULL-Verifikation ausgesperrt. Zusaetzlich setzt der Passwort-Reset die Verifikation mit, weil der Mail-Link den Postfachzugriff nachweist - sonst blieben eingeladene Mitglieder dauerhaft unbestaetigt. - Login landete auf konto.php statt auf dem Dashboard. Landingpage: die gruene Vertrauenszeile auf "DSGVO-konform" gekuerzt, die Eintraege zu Paragraf 19 UStG und "Bestehende Ablaeufe bleiben" entfernt. Geprueft: neues scripts/check-konto-und-mandantenwechsel.php mit 18 Assertions gruen, Passwortformular zusaetzlich manuell inkl. CSRF (419). Bestehende Suiten unveraendert gruen: HTTP-Smoke 34 Seiten, Rollenmatrix 55, Mandanten-Isolation 12, M3-Auth 9, M3-Settings 15. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
72 lines
3.1 KiB
Markdown
72 lines
3.1 KiB
Markdown
# Backlog: Kaffeeliste-Ausdruck, Landingpage, Menüstruktur
|
||
|
||
Sammlung offener Anforderungen aus Gesprächen mit Clemens (Stand:
|
||
2026-07-19). Noch nicht umgesetzt, dient als Grundlage für spätere
|
||
Implementierung.
|
||
|
||
## Menüstruktur (Sidebar)
|
||
|
||
Ist-Zustand: eine flache Liste aus Legacy- und SaaS-Seiten
|
||
(`footer.php`), Reihenfolge historisch gewachsen statt bewusst gruppiert.
|
||
|
||
Vorschlag: Gruppierung in Abschnitte mit Zwischenüberschriften, z. B.:
|
||
|
||
- **Meine Kaffeeliste** – Kaffeeliste (eigene Übersicht), Einzahlung
|
||
eintragen, Striche eintragen.
|
||
- **Verwaltung** (nur Admin/Treasurer) – Mitglieder verwalten,
|
||
Kaffeeliste anzeigen, Journal-Vorschau, Jahresabschluss, Hinweise
|
||
verwalten.
|
||
- **Konto** – Kundenkonto, Mandant-Einstellungen, FAQ, Logout.
|
||
|
||
**Erledigt.** `footer.php` gruppiert die Sidebar inzwischen in
|
||
„Kaffeeliste", „Verwaltung" (rollenabhängig eingeblendet) und „Konto";
|
||
dort ist ab zwei Mitgliedschaften auch „Mandant wechseln" ergänzt.
|
||
|
||
## Kaffeeliste-Ausdruck (PDF-Export) als zentrale Funktion
|
||
|
||
**Erledigt (2026-07-19)**, siehe `docs/m6-import-export-mail.md` Abschnitt
|
||
„Nachtrag: Adaptives Layout nach Mitgliederzahl" für Details:
|
||
|
||
- ✅ Adaptives Layout nach Mitgliederanzahl (Zeilenhöhe 16–40px je nach
|
||
Mitgliederzahl).
|
||
- ✅ Vorder-/Rückseite bzw. mehrere Seiten erst ab 50 Mitgliedern
|
||
(`EXPORT_MULTI_PAGE_THRESHOLD`), darunter eine einseitige Liste.
|
||
- ✅ Admin-Einstellung „Freie Zeilen für neue Mitglieder"
|
||
(`tenant_settings.pdf_show_empty_rows`, Formular in
|
||
`mandant-einstellungen.php`).
|
||
- ✅ Trennmodus bei mehreren Seiten wählbar: Trinkverhalten oder
|
||
alphabetisch (`tenant_settings.pdf_split_mode`).
|
||
|
||
Die Kaffeeliste als zentrale, prominent beworbene Funktion auf der
|
||
Landingpage darzustellen (siehe unten) ist noch offen.
|
||
|
||
### RFID-Kartenerfassung (zukünftig, nicht öffentlich bewerben)
|
||
|
||
Langfristig soll das Erfassen von Strichen auch per RFID-Karte möglich
|
||
sein (statt nur manuell/Selbsteintrag). Das ist noch keine geplante
|
||
Funktion für die nächste Umsetzung und **soll auf der Landingpage/in der
|
||
Vermarktung noch nicht erwähnt werden**, bis sie tatsächlich existiert.
|
||
|
||
## Landingpage-Funktionen (`landing.php`) – Bestandsaufnahme
|
||
|
||
Aktuell beworbene Funktionen im Abschnitt „Alles rund um die
|
||
Kaffeekasse":
|
||
|
||
1. Mitglieder & Rollen – anlegen/deaktivieren/anonymisieren, Rollen
|
||
Admin/Kassenwart/Mitglied.
|
||
2. Guthaben & Einzahlungen – durchgängiges Journal, jede Buchung
|
||
nachvollziehbar.
|
||
3. PayPal-Zahlung – optionaler Ausgleich offener Beträge inkl. Abgleich.
|
||
4. CSV-Import & Export – PayPal-Export einlesen (mit Vorschau/
|
||
Dublettenprüfung), Kaffeeliste als PDF exportieren.
|
||
5. Mandantenfähig – getrennte Bereiche pro Kunde.
|
||
6. Hinweise & Info-Mails – Hinweisbanner, Info-Mail an alle Mitglieder.
|
||
|
||
Dazu: Drei-Schritte-Ablauf (Kaffee nehmen → Strich setzen → bei Bedarf
|
||
bezahlen), Demo-Screenshot, FAQ-Auszug (5 Fragen), CTA-Bereiche.
|
||
|
||
Soll überarbeitet werden – insbesondere Punkt 4 (CSV/PDF) stärker als
|
||
zentrale Funktion herausstellen, sobald das adaptive PDF-Layout steht.
|
||
RFID bewusst nicht aufnehmen, bis es existiert. Konkrete neue
|
||
Formulierungen/Struktur noch offen.
|