Audit-Log, Import/Export, eigenes Profil & anpassbare Navigation
- Änderungslog: audit_log-Tabelle + last_modified_by/at an Devices und Switches; log_action()/touch_record() in allen Verwaltungsrouten (Devices, Switches, Zugangsdaten, Benutzer, Gruppen, Settings) verdrahtet. Neue Admin-Seite "Änderungslog" unter /logs/aenderungen. PoE-Neustarts werden bewusst nicht geloggt. - Verschlüsseltes Import/Export für Devices/Switches/Zugangsdaten unter Settings, passphrasenbasiert (PBKDF2 + Fernet), für Umzug auf neue Umgebungen. Referenziert Zugangsdaten/Switche über Name/Hostname statt interner ID für stabilen Re-Import. - Eigenes Profil: Klick auf den Namen in der Sidebar öffnet ein Modal zum Ändern von Vor-/Nachname, eigenem Passwort (mit Prüfung des aktuellen Passworts) und Profilbild-Upload (Anzeige in Sidebar + Änderungslog). - Anpassbare Navigation: Reihenfolge der Sidebar-Punkte ist unter Settings per Auf-/Ab-Buttons konfigurierbar (settings.nav_order); "Devices"/ "Users"/"Settings" umbenannt zu "Geräte"/"Benutzer"/"Einstellungen"; "Live-Log" und "Änderungslog" zu aufklappbarer "Logs"-Gruppe zusammengefasst. Jeder Benutzer sieht weiterhin nur, wofür er berechtigt ist. - create_db.py mit allen Schema-Erweiterungen synchronisiert (audit_log, last_modified_by/at, avatar_filename) für Frischinstallationen. - venv-Umgebung im WSL neu aufgesetzt (war fälschlich unter dem Erstellungspfad venv-linux verankert und daher nicht aktivierbar). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,23 @@ Die App ermöglicht:
|
||||
(siehe [Rechtesystem](#rechtesystem-gruppen--berechtigungen))
|
||||
- Einklappbare Sidebar (Desktop: dauerhaft, über Neuladen hinweg gemerkt;
|
||||
mobil: temporäres Überlagern)
|
||||
- **Änderungslog**: jede Anlage/Bearbeitung/Löschung sowie Aktivieren/
|
||||
Deaktivieren von Geräten, Switchen, Zugangsdaten, Benutzern und Gruppen
|
||||
wird protokolliert (wer, wann, was) — einsehbar unter „Logs → Änderungslog“;
|
||||
Geräte und Switche merken sich zusätzlich direkt am Datensatz, wer sie
|
||||
zuletzt geändert hat. PoE-Neustarts werden bewusst **nicht** geloggt
|
||||
(siehe [Änderungslog](#änderungslog))
|
||||
- **Verschlüsselter Import/Export**: Geräte, Switche und Zugangsdaten lassen
|
||||
sich unter Einstellungen als ein mit selbstgewählter Passphrase
|
||||
verschlüsseltes Bundle exportieren und auf einer neuen Umgebung wieder
|
||||
importieren (siehe [Import/Export](#importexport))
|
||||
- **Eigenes Profil**: jeder Benutzer kann über einen Klick auf seinen Namen
|
||||
in der Sidebar Vor-/Nachname, eigenes Passwort und ein Profilbild pflegen
|
||||
(siehe [Eigenes Profil](#eigenes-profil--profilbild))
|
||||
- **Anpassbare Navigation**: Admins können die Reihenfolge der Sidebar-
|
||||
Menüpunkte unter Einstellungen per Auf/Ab-Buttons festlegen; jeder Benutzer
|
||||
sieht davon ohnehin nur, wofür er berechtigt ist (siehe
|
||||
[Navigation anpassen](#navigation-anpassen))
|
||||
|
||||
## Was ist neu gegenüber dem Original?
|
||||
|
||||
@@ -136,6 +153,57 @@ Löschen ist nur möglich, wenn kein Switch mehr auf den Eintrag verweist.
|
||||
Bestehende Datenbanken aus einer älteren Version (Username/Passwort direkt
|
||||
am Switch) werden beim ersten Start automatisch migriert.
|
||||
|
||||
## Änderungslog
|
||||
|
||||
Jede Anlage, Bearbeitung, Löschung sowie jedes Aktivieren/Deaktivieren von
|
||||
Geräten, Switchen, Zugangsdaten, Benutzern und Gruppen wird in der Tabelle
|
||||
`audit_log` protokolliert (Zeitpunkt, Benutzer, Aktion, Ziel, Details) —
|
||||
einsehbar unter **Logs → Änderungslog** (nur für Admins). Zusätzlich merken
|
||||
sich Geräte und Switche direkt am Datensatz (`last_modified_by`,
|
||||
`last_modified_at`), wer sie zuletzt geändert hat, damit man das nicht erst
|
||||
im Log nachschlagen muss.
|
||||
|
||||
PoE-Neustarts werden **bewusst nicht** im Änderungslog erfasst — die stehen
|
||||
bereits im Live-Log von `poe.sh`. Eine Ausnahme ist die Änderung des
|
||||
Prüfintervalls selbst (eine Einstellungsänderung, kein Neustart), die wird
|
||||
mitprotokolliert.
|
||||
|
||||
## Import/Export
|
||||
|
||||
Unter **Einstellungen** lassen sich Geräte, Switche und Zugangsdaten
|
||||
(inkl. entschlüsselter Passwörter) als ein einziges JSON-Bundle exportieren.
|
||||
Das Bundle wird mit einem aus einer selbstgewählten Passphrase abgeleiteten
|
||||
Schlüssel verschlüsselt (PBKDF2-HMAC-SHA256 + Fernet) — unabhängig vom
|
||||
`fernet.key` dieser Installation, damit die Datei auf einer komplett neuen
|
||||
Umgebung (mit eigenem, neu generiertem `fernet.key`) wieder eingelesen
|
||||
werden kann. Gedacht für einen Umzug auf einen neuen Server.
|
||||
|
||||
Beim Import wird dieselbe Passphrase erneut abgefragt; Zugangsdaten werden
|
||||
nach Name, Switche nach Hostname und Geräte nach MAC-Adresse abgeglichen —
|
||||
bestehende Einträge mit gleichem Schlüssel werden aktualisiert, neue werden
|
||||
angelegt. Switche referenzieren ihre Zugangsdaten dabei über den Namen (nicht
|
||||
die interne ID), damit der Import auch bei abweichender ID-Vergabe auf dem
|
||||
Zielsystem korrekt verknüpft.
|
||||
|
||||
## Eigenes Profil & Profilbild
|
||||
|
||||
Ein Klick auf den eigenen Namen unten in der Sidebar öffnet „Mein Profil“:
|
||||
Vor-/Nachname ändern, ein Profilbild hochladen (PNG/JPG/GIF/WEBP) und das
|
||||
eigene Passwort ändern (erfordert Eingabe des aktuellen Passworts). Das ist
|
||||
bewusst getrennt vom Admin-Bereich „Benutzer“, der andere Konten verwaltet.
|
||||
Ist ein Profilbild hinterlegt, erscheint es statt der Initialen sowohl in
|
||||
der Sidebar als auch im Änderungslog neben dem Benutzernamen.
|
||||
|
||||
## Navigation anpassen
|
||||
|
||||
Die Reihenfolge der Sidebar-Menüpunkte ist unter **Einstellungen** per
|
||||
Auf-/Ab-Buttons konfigurierbar (gespeichert als JSON-Liste unter
|
||||
`settings.nav_order`) und gilt global für alle Benutzer. Unabhängig von der
|
||||
Reihenfolge sieht jeder Benutzer ohnehin nur die Punkte, für die er auch
|
||||
berechtigt ist — ein Benutzer ohne jede Gruppe sieht z.B. nur „Dashboard“.
|
||||
„Logs“ ist dabei eine aufklappbare Gruppe mit den Unterpunkten „Live-Log“
|
||||
und „Änderungslog“.
|
||||
|
||||
## Entwicklung unter WSL
|
||||
|
||||
Da das Projekt ausschließlich für Linux gebaut ist, empfiehlt sich die
|
||||
|
||||
Reference in New Issue
Block a user