From e40955fffecf7353c80126ae92164100302e3a92 Mon Sep 17 00:00:00 2001 From: Clemens Creutzburg Date: Fri, 17 Jul 2026 11:48:45 +0200 Subject: [PATCH] Zwei Mehrmandanten-Bugs vor Go-Live behoben footer.php: Einzahlung/Striche/Mitglieder/Hinweise/Jahresabschluss waren nur fuer den alten Default-Mandanten-Admin verlinkt, nicht fuer SaaS-Mandanten-Owner/Admin/Kassenwart - die Seiten selbst erlaubten Zugriff laengst, waren aber ueber die Navigation nicht erreichbar. namenanpassen.php: nie auf das neue Mandantenmodell portiert, nutzte ausschliesslich die globale kl_Mitarbeiter-Tabelle direkt per SQL und haette fuer jeden Mandanten ausser dem Standard-Mandanten leer funktioniert. Jetzt ueber participants/saas-Rollen: normale Mitglieder koennen nur sich selbst umbenennen, Owner/Admin jedes Mitglied des eigenen Mandanten. Live getestet inkl. Tenant-Isolation (Mitglied kann nicht den Owner umbenennen). --- footer.php | 8 +- namenanpassen.php | 195 +++++++++++++++++++++++----------------------- 2 files changed, 102 insertions(+), 101 deletions(-) diff --git a/footer.php b/footer.php index 0f99485..0e33f0b 100644 --- a/footer.php +++ b/footer.php @@ -21,7 +21,7 @@ $saasCanUseLedgerNav = $saasNavUser !== null && saas_user_has_role(['owner', 'admin', 'treasurer'], $saasNavUser); $legacyCanUseAdminNav = checkKaffeelisteAdmin($conn, $mailadress); -if($legacyCanUseAdminNav){ +if($saasCanUseLedgerNav || $legacyCanUseAdminNav){ ?>
  • Einzahlung eintragen
  • @@ -34,11 +34,15 @@ if($saasCanUseLedgerNav || $legacyCanUseAdminNav){ ?>
  • Kaffeeliste anzeigen
  • Ledger Preview
  • +
  • Jahresabschluss
  • Mitglieder verwalten
  • Hinweise verwalten
  • diff --git a/namenanpassen.php b/namenanpassen.php index 088efb4..b26a315 100644 --- a/namenanpassen.php +++ b/namenanpassen.php @@ -1,124 +1,121 @@ - - - -
    -
    - - - - - - - Anzeigenamen aktualisieren - - -

    Anzeigenamen aktualisieren

    -
    Hier kannst du deinen Anzeigenamen anpassen.
    Dieser wird auf der Kaffeeliste und E-Mail genutzt.
    "; - // SQL-Abfrage für alle Mitarbeiter - $sqlMitarbeiter = "SELECT MitarbeiterID, Name FROM kl_Mitarbeiter WHERE Email ='" . $mailadress . "'"; - $stmtMitarbeiter = sqlsrv_query($conn, $sqlMitarbeiter); - + + getMessage(); // Fehlermeldung zurückgeben - } -} + if ($ziel === null) { + $fehler = 'Dieses Mitglied konnte nicht gefunden werden.'; + } elseif ($neuerName === '' || strlen($neuerName) > 60) { + $fehler = 'Bitte einen Namen mit maximal 20 Zeichen angeben.'; + } elseif (ledger_update_participant($pdo, $tenantId, $participantId, $neuerName, (string)($ziel['email'] ?? ''), $ziel['paypal_name'], $ziel['active'])) { + app_audit_log($pdo, $tenantId, $actorUserId, 'participant.renamed', 'participant', $participantId, ['name' => $neuerName]); + $meldung = 'Anzeigename wurde aktualisiert.'; + $mitglieder = ledger_fetch_participants_for_admin($pdo, $tenantId); + $auswahl = $isAdmin ? $mitglieder : array_values(array_filter($mitglieder, fn(array $m): bool => $m['participant_id'] === $participantId)); + } else { + $fehler = 'Der Anzeigename konnte nicht aktualisiert werden.'; + } + } + ?> -// Überprüfen, ob das Formular abgesendet wurde -if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["aktion"]) && $_POST["aktion"] == "aktualisieren") { - $mitarbeiterID = $_POST["mitarbeiterID"]; - $neuerName = $_POST["neuerName"]; + +

    Hier kannst du deinen Anzeigenamen anpassen. Dieser wird auf der Kaffeeliste und in E-Mails genutzt.

    + - $ergebnis = aktualisiereAnzeigenamen($mitarbeiterID, $neuerName, $conn); + +

    + + +

    + - if ($ergebnis === true) { - echo "Anzeigename erfolgreich aktualisiert."; - } else { - echo "Fehler: $ergebnis"; - } -} + +

    Für dein Konto wurde kein Mitglied gefunden.

    + +
    + + +
    + + + + +
    +
    + +

    -?> + + +
    + + +

    Sie haben keinen Zugang zu dieser Webseite.

    + - -
    "> - -
    - -
    - -
    - -

    - - - -
    - - - - - - - -
    - - - - -