Commit Graph
19 Commits
Author SHA1 Message Date
clemensandClaude Sonnet 5 aeb687f42e M5: Hinweise auf tenant-scoped Notices umziehen, Mitgliederzugang auf Rollen umstellen
Hinweise:
- Neue Tabelle notices (tenant-scoped, Soft-Delete via deleted_at) loest
  die global unscoped kl_hinweise als aktive Datenquelle ab; Migration
  uebernimmt einmalig aktuell gueltige kl_hinweise-Eintraege fuer den
  Default-Mandanten. kl_hinweise bleibt als Golden-Master-Referenz stehen.
- hinweise.php und der Banner in header.php sind tenant-scoped umgestellt.

Mitgliederverwaltung:
- mitarbeiterverwalten.php verwaltet jetzt participants (tenant-scoped)
  statt der global unscoped kl_Mitarbeiter-Tabelle als primaere Quelle.
  Das behebt nebenbei ein Mandanten-Datenleck: jeder SaaS-Mandant mit
  Owner/Admin-Rolle haette zuvor die komplette Default-Mandanten-
  Mitgliederliste sehen und bearbeiten koennen.
- Fuer den Default-Mandanten bleibt Dual-Write nach kl_Mitarbeiter
  bestehen, damit stricheintragen.php/einzahlung.php weiter funktionieren;
  andere Mandanten werden rein participant-nativ verwaltet.
- Die Legacy-Administrator-Checkbox ist raus. Stattdessen kann ein Admin
  je Mitglied unabhaengig von Name/E-Mail einen Login-Zugang mit Rolle
  (member/treasurer/admin) gewaehren oder entziehen
  (saas_grant_participant_access / saas_revoke_participant_access).
  Einladung laeuft ueber den bestehenden Passwort-Reset-Mechanismus,
  Entzug setzt die Mitgliedschaft auf revoked statt sie zu loeschen.
- Kompletter Flow live getestet: anlegen, Zugang gewaehren, Einladungsmail,
  Passwort setzen, Login, Rollenschutz, Zugang entziehen, Login-Sperre.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 00:18:55 +02:00
clemensandClaude Sonnet 5 de3dcee7ec M5: Mitgliederverwaltung tenant- und rollenbasiert umstellen
- mitarbeiterverwalten.php war rein ueber Legacy-Admin gesperrt und haette
  neue SaaS-Mandanten ausgeschlossen; jetzt Rollen-/Legacy-Fallback wie in
  kaffeeliste.php (owner/admin).
- Anlegen/Bearbeiten/Aktivieren/Deaktivieren spiegeln transaktional nach
  participants (ledger_mirror_legacy_participant neu ergaenzt), damit
  Ledger-Ansichten sofort den aktuellen Mitgliederstand zeigen.
- Gespeicherte XSS-Luecke behoben: Name/E-Mail waren in Formular und Liste
  ungeschuetzt ausgegeben, jetzt ueber saas_html().
- Admin-Rollenvergabe bleibt bewusst Legacy-only (kein automatischer
  Login-Account ohne Einladungsflow); dokumentiert als offener Punkt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 23:49:33 +02:00
clemensandClaude Sonnet 5 968a55f442 M5 abschliessen: Schreibseiten aufs Ledger umstellen, Storno statt Delete
- stricheintragen.php und einzahlung.php erhielten bisher gar keine
  Zugriffskontrolle (nur CSRF), jetzt Rollen-/Legacy-Fallback wie in
  kaffeeliste.php; Sammeleintraege spiegeln transaktional ins Ledger
  (ledger_mirror_legacy_payment neu ergaenzt).
- letzteneintraege.php war rein ueber Legacy-Admin gesperrt und haette
  neue SaaS-Mandanten ausgeschlossen; Loeschen markiert den gespiegelten
  Ledger-Eintrag jetzt per voided_at statt ihn zu entfernen
  (ledger_void_entry_by_legacy_id).
- check-m4-ledger-migration.php an das Storno-Modell angepasst: verwaiste
  Ledger-Zeilen sind nur noch ein Fehler, wenn sie nicht voided sind.
- Nebenbei: PHP-Warning bei Sammelerfassung behoben, toten Code entfernt,
  veraltete README (verwies auf nicht existierende saas-app/-Struktur)
  korrigiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 23:43:39 +02:00
clemens 078f28551d Teilnehmerauswertung auf Ledger-Lesemodell umstellen 2026-07-14 22:25:51 +02:00
clemens 8688cc78db Teilnehmerauswertung auf Ledger-Lesemodell umstellen 2026-07-14 22:21:28 +02:00
clemens 539117b409 Deutsche Umlaute in UI und Dokumentation korrigieren 2026-07-14 22:11:33 +02:00
clemens f9544f24fd M5 Kaffeeliste read-only auf Ledger umstellen
- kaffeeliste.php aus ledger_fetch_participant_summaries lesen lassen
- Legacy-Teilnehmerlinks ueber legacy_mitarbeiter_id erhalten
- Sidebar-Zugriff fuer Legacy-Admin und SaaS-Rollen trennen
- Smoke-Test um konkrete Ledger-Werte und Inaktiv-Ausschluss erweitern
- M5-App-Kern-Doku ergaenzen
2026-07-14 21:32:59 +02:00
clemens 726c5a9508 M4 Ledger-Service fuer erste App-Abfragen ergaenzen
- zentrale Ledger-Abfragen fuer Tenant- und Teilnehmer-Summen bauen
- letzte Buchungen und Einzelteilnehmer ueber app/ledger.php lesbar machen
- Service-Check und M4-Doku ergaenzen
2026-07-13 21:01:37 +02:00
clemens b0e21bbb0a M3 Mailversand und Public-Landingpage vorbereiten
- Mail-Transport fuer Reset- und Verifizierungslinks ergaenzen
- Public-Landingpage mit Hero-Asset und App-CTAs bauen
- Mail-Flow-Test, Smoke-Abdeckung und SaaS-Doku aktualisieren
2026-07-13 20:38:01 +02:00
clemens 9f2e1bdfb1 M3 Tenant-Aufloesung per App-Session ergaenzen
- Mandantenauswahl fuer Benutzer mit mehreren Tenants bauen
- feste Tenant-Domains ohne Wildcard-Abhaengigkeit vorbereiten
- Login, Backfill, Smoke-Checks und M3-Dokumentation aktualisieren
2026-07-13 20:04:20 +02:00
clemens 8ab4a8a9bb M3 Passwort-Reset und E-Mail-Verifikation ergänzen
- Auth-Token-Tabelle mit gehashten Single-Use-Tokens einführen
- Passwort-Reset und E-Mail-Verifikation als Dev-Flow bauen
- Token-Flow-Test, Smoke-Abdeckung und M3-Dokumentation aktualisieren
2026-07-13 19:26:58 +02:00
clemens 19ff11c21a M3 Mandant-Einstellungen und Rollencheck ergänzen
- zentrale Owner/Admin-Rollenpruefung in SaaS-Auth ergaenzen
- Mandant-Einstellungen fuer Preise, PayPal und Basisdaten bauen
- Settings-Flow-Test, Navigation und M3-Dokumentation aktualisieren
2026-07-12 22:32:51 +02:00
clemens 5baf6542ce M3 Registrierung und Login-Grundlage ergänzen
- SaaS-Auth-Helper und PDO-Datenbankzugriff einführen
- Registrierung, Login, Logout und Kontoansicht ergänzen
- Auth-Migration, Flow-Check und Smoke-Abdeckung aktualisieren
2026-07-12 20:17:42 +02:00
clemens 174fff6f31 M2 Umsetzung 2026-07-12 01:07:35 +02:00
clemens 92d94f1c95 renew 2026-07-11 18:21:33 +02:00
clemens cbea23083d design anpassung 2026-06-23 00:06:31 +02:00
clemens 1891ec0a51 weitere Bearibeitung 2026-06-17 16:45:14 +02:00
clemens 06645f1e9c Phase1 Bearbeitung 2026-06-15 18:36:57 +02:00
clemens b08eb93547 Initial Kaffeekasse SaaS restart 2026-06-15 17:13:38 +02:00