Betrieb & Sicherheit
Datenbank wechseln (Admin)
Profil → Administration → Datenbank-Verbindung: neue Zugangsdaten eintragen, Verbindung testen, mit dem eigenen Admin-Passwort bestätigen.
- Leere Ziel-Datenbank: wahlweise alle Daten übernehmen (Benutzer, Auslagen, Belege, Passkeys) oder nur das eigene Admin-Konto mitnehmen.
- Ziel enthält bereits AuslagenFlow-Daten: Der Wechsel klappt nur, wenn dort ein aktives Admin-Konto mit gleichem Benutzernamen existiert (Schutz vor Aussperren).
- Gleiche Datenbank: Es werden nur die Zugangsdaten (z. B. ein neues DB-Passwort) aktualisiert.
Nach einem Wechsel müssen sich alle neu anmelden.
Sicherheit
- Passwörter mit
password_hash(bcrypt/argon2), mindestens 10 Zeichen - TOTP-Geheimnisse AES-256-GCM-verschlüsselt (Schlüssel in
config.php, nicht in der DB). Wirdconfig.phpgelöscht und neu eingerichtet, müssen alle Benutzer TOTP neu einrichten. - Brute-Force-Schutz: 5 Fehlversuche pro Benutzername bzw. 20 pro IP in 15 Minuten
- Sitzungs-Cookie
HttpOnly,SameSite=Strict, bei HTTPSSecure; Ablauf nach 12 h Inaktivität - Passwortwechsel, Sperren oder MFA-Reset beenden alle anderen Sitzungen des Benutzers
- CSRF-Schutz über eigenen Anfrage-Header und Origin-Prüfung
- Jeder Benutzer sieht ausschließlich seine eigenen Auslagen; Admins verwalten Konten, sehen aber keine fremden Auslagen. Einzige Ausnahme: Kassenwart und Vorstand sehen fremde Auslagen ab Status „eingereicht“ (offene nie) und können sie kommentieren. Inhalte ändern können sie nicht: Der Kassenwart setzt nur „Erstattung veranlasst“, Kassenwart und Vorstand können eine Einreichung als Ganzes mit Begründung ablehnen. Die IBAN der Mitglieder sieht nur der Kassenwart
- Kommentare sind nicht bearbeitbar und nur kurz (5 Minuten, ohne Antwort) löschbar; abgelehnte und zurückgezogene Einreichungen bleiben mit PDF und Verlauf erhalten
- Eingereichte Auslagen sind einzeln nicht mehr änderbar oder löschbar; nach veranlasster Erstattung lässt sich auch die Einreichung nicht mehr zurückziehen. Konten mit solchen Auslagen kann der Admin nur sperren, nicht löschen
- Der letzte aktive Admin kann nicht gesperrt, herabgestuft oder gelöscht werden
Datensicherung: regelmäßig die Datenbank sichern (z. B. mysqldump oder Backup-Funktion des Hosters) – sie enthält auch alle Belege und Einreichungs-PDFs.
Die Datensicherung in der App (Export → „Backup speichern“ / „Backup einspielen“) ist standardmäßig ausgeschaltet und ausgeblendet, weil alle Daten in der Datenbank liegen. Zum Testen oder für den Umstieg von der Einzelplatz-Version lässt sie sich in api/config/config.php einschalten:
return array (
'datensicherung' => true, // ergänzen; zum Ausschalten wieder entfernen
'db' => array ( … ),
…
Umstieg von der Einzelplatz-Version
Frühere Versionen der App (damals noch „VereinsAuslagen“) liefen ohne Server und speicherten alles im Browser. Daten daraus lassen sich übernehmen:
Dafür vorübergehend die Datensicherung einschalten ('datensicherung' => true in api/config/config.php, siehe oben) und danach wieder entfernen.
- In der bisherigen App: Export → Datensicherung → Backup speichern (ZIP).
- In der Mehrbenutzer-App anmelden: Export → Backup einspielen und die ZIP-Datei wählen.
Auslagen, Status, Belege und – falls im Profil noch leer – die Stammdaten werden übernommen. Bereits vorhandene Auslagen (gleiche ID) werden übersprungen.
Diese Anleitung beschreibt AuslagenFlow 3.3.0. Sie entspricht dem Benutzerhandbuch im Quelltext.