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>
This commit is contained in:
@@ -319,6 +319,36 @@ function ledger_mirror_legacy_consumption(PDO $pdo, int $tenantId, int $legacyCo
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mirrors a single kl_Mitarbeiter row into participants, so member changes
|
||||
* made through the legacy admin UI are immediately visible to ledger-backed
|
||||
* reads instead of waiting for the next scripts/backfill-default-tenant.php run.
|
||||
*/
|
||||
function ledger_mirror_legacy_participant(PDO $pdo, int $tenantId, int $legacyMitarbeiterId): void
|
||||
{
|
||||
$stmt = $pdo->prepare(
|
||||
"INSERT INTO participants
|
||||
(tenant_id, display_name, email, email_norm, paypal_name, active, legacy_mitarbeiter_id)
|
||||
SELECT
|
||||
?,
|
||||
NULLIF(TRIM(m.Name), ''),
|
||||
NULLIF(TRIM(m.Email), ''),
|
||||
NULLIF(LOWER(TRIM(m.Email)), ''),
|
||||
NULLIF(TRIM(m.paypalname), ''),
|
||||
m.aktiv,
|
||||
m.MitarbeiterID
|
||||
FROM kl_Mitarbeiter m
|
||||
WHERE m.MitarbeiterID = ?
|
||||
ON DUPLICATE KEY UPDATE
|
||||
display_name = COALESCE(VALUES(display_name), participants.display_name),
|
||||
email = VALUES(email),
|
||||
email_norm = VALUES(email_norm),
|
||||
paypal_name = VALUES(paypal_name),
|
||||
active = VALUES(active)"
|
||||
);
|
||||
$stmt->execute([$tenantId, $legacyMitarbeiterId]);
|
||||
}
|
||||
|
||||
function ledger_mirror_legacy_payment(PDO $pdo, int $tenantId, int $legacyPaymentId): void
|
||||
{
|
||||
$stmt = $pdo->prepare(
|
||||
|
||||
Reference in New Issue
Block a user