Zugangsdaten-Entitaet, Gruppen-Tabelle mit Aufklappansicht, Vor-/Nachname, Dashboard-Sektionen
- Zugangsdaten (SSH-Logins) als eigenstaendige, wiederverwendbare Entitaet statt direkt am Switch; inline Neuanlage beim Switch-Erstellen moeglich; automatische Migration bestehender Switch-Logins - Gruppen-Seite als Tabelle mit Aufklapp-Zeile fuer Rechte (Akkordeon), Admin als feste Systemzeile (Mitgliederverwaltung ueber is_admin), Standardgruppe 'Benutzer' mit allen Ansichtsrechten (devices.view, switches.view), automatische Zuordnung neuer/verwaister Benutzer - Users-Seite: Icon-Buttons statt Text, Bearbeiten+Passwortaenderung in einem Modal zusammengefuehrt, Gruppe/Admin-Zuweisung ueber eigenen Zuweisen-Button (wie Switch-Zuordnung bei Devices), Vor-/Nachname - Dashboard: einheitliche Kachelansicht mit/ohne Login, drei sortierte Abschnitte (Offline/Online/Deaktiviert), Kachel-Suchfilter, Bootstrap- artiges Grid (max. 6 Spalten), Aktivieren-Option im Popup fuer deaktivierte Geraete, Countdown serverseitig korrekt geseedet - Sidebar dauerhaft einklappbar (Desktop, persistent via localStorage) - Devices-Tabelle: Aktions-Buttons nebeneinander statt untereinander Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,12 @@ def generate_ips_list():
|
||||
|
||||
switches = {
|
||||
row["hostname"]: row
|
||||
for row in conn.execute("SELECT hostname, ip, username, password FROM switches")
|
||||
for row in conn.execute("""
|
||||
SELECT switches.hostname, switches.ip,
|
||||
credentials.username AS username, credentials.password AS password
|
||||
FROM switches
|
||||
LEFT JOIN credentials ON credentials.id = switches.credential_id
|
||||
""")
|
||||
}
|
||||
|
||||
devices = conn.execute("""
|
||||
@@ -26,12 +31,12 @@ def generate_ips_list():
|
||||
|
||||
for dev in devices:
|
||||
switch = switches.get(dev["switch_hostname"])
|
||||
if switch:
|
||||
if switch and switch["password"]:
|
||||
switch_ip = switch["ip"]
|
||||
switch_user = switch["username"]
|
||||
switch_pass = decrypt_password(switch["password"])
|
||||
else:
|
||||
switch_ip = ""
|
||||
switch_ip = switch["ip"] if switch else ""
|
||||
switch_user = ""
|
||||
switch_pass = ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user