Version 2.7.5: jede Aenderung nennt alt und neu
This commit is contained in:
1 parent
c639f4f507
commit
dc94a8e666
9 files changed
+162
-22
No files matched your search
@@ -173,6 +173,9 @@ def update_subnet(subnet_id: int):
|
||||
flash(problem, "danger")
|
||||
return redirect(url_for("dhcp.overview"))
|
||||
|
||||
# Vor der Aenderung lesen -- danach ist der alte Stand weg, und "Subnetz
|
||||
# gespeichert" allein sagt nicht, was vorher eingestellt war.
|
||||
vorher = Database.one(conn, "SELECT * FROM dhcp_subnets WHERE id=?", (subnet_id,))
|
||||
with transaction():
|
||||
conn.execute(
|
||||
"UPDATE dhcp_subnets SET interface=?, range_start=?, range_end=?, gateway=?, dns=?, "
|
||||
@@ -189,7 +192,26 @@ def update_subnet(subnet_id: int):
|
||||
subnet_id,
|
||||
),
|
||||
)
|
||||
_audit("dhcp.subnet_updated", str(subnet_id), severity="notice")
|
||||
nachher = Database.one(conn, "SELECT * FROM dhcp_subnets WHERE id=?", (subnet_id,))
|
||||
_audit(
|
||||
"dhcp.subnet_updated",
|
||||
f"{interface} {start}-{end}",
|
||||
audit.diff(
|
||||
vorher,
|
||||
nachher,
|
||||
felder=(
|
||||
("interface", "Schnittstelle"),
|
||||
("range_start", "Von"),
|
||||
("range_end", "Bis"),
|
||||
("gateway", "Gateway"),
|
||||
("dns", "DNS"),
|
||||
("comment", "Kommentar"),
|
||||
("enabled", "Aktiv"),
|
||||
),
|
||||
)
|
||||
or "keine inhaltliche Änderung",
|
||||
severity="notice",
|
||||
)
|
||||
flash("Subnetz gespeichert.", "success")
|
||||
return _write_and_redirect()
|
||||
|
||||
@@ -395,6 +417,7 @@ def add_reservation():
|
||||
)
|
||||
return redirect(url_for("dhcp.overview"))
|
||||
|
||||
vorher = Database.one(conn, "SELECT * FROM dhcp_reservations WHERE mac=?", (mac,))
|
||||
with transaction():
|
||||
conn.execute(
|
||||
"INSERT INTO dhcp_reservations (mac, ip, hostname, comment, created_at) "
|
||||
@@ -407,7 +430,18 @@ def add_reservation():
|
||||
(request.form.get("comment") or "").strip(),
|
||||
),
|
||||
)
|
||||
_audit("dhcp.reservation_saved", f"{mac} -> {ip}", severity="notice")
|
||||
nachher = Database.one(conn, "SELECT * FROM dhcp_reservations WHERE mac=?", (mac,))
|
||||
_audit(
|
||||
"dhcp.reservation_saved",
|
||||
mac,
|
||||
audit.diff(
|
||||
vorher,
|
||||
nachher,
|
||||
felder=(("ip", "IP"), ("hostname", "Hostname"), ("comment", "Kommentar")),
|
||||
)
|
||||
or f"neu angelegt: {ip}",
|
||||
severity="notice",
|
||||
)
|
||||
flash("Reservierung gespeichert.", "success")
|
||||
return _write_and_redirect()
|
||||
|
||||
|
||||
@@ -359,9 +359,9 @@ def save_form(token: str):
|
||||
# Zwei Zeilen: oben, was ein Mensch liest; unten die Pruefsumme, die
|
||||
# niemand liest, aber jeder vergleichen koennen muss. In einer einzigen
|
||||
# Zeile drueckte der Hash den Rest aus der Spalte.
|
||||
kopf = f"{'Signiert' if unterschriften else 'Gespeichert'}: {wohin} ({ziel_mount.label})"
|
||||
kopf = f"{'Signiert' if unterschriften else 'Gespeichert'}: {wohin}"
|
||||
if unterschriften:
|
||||
kopf += f" – angegeben von: {', '.join(unterschriften)}"
|
||||
kopf += f" von: {', '.join(unterschriften)}"
|
||||
beschreibung = f"{kopf}{chr(10)}sha256={pruefsumme}"
|
||||
_audit(
|
||||
"fileshare.form_signed" if unterschriften else "fileshare.form_saved",
|
||||
|
||||
@@ -677,6 +677,12 @@ def update_device(
|
||||
("Port", str(row["port"] or ""), clean_port),
|
||||
("Aktiv", str(bool(row["is_active"])), str(bool(is_active))),
|
||||
("Automatischer Neustart", str(bool(row["auto_restart"])), str(bool(auto_restart))),
|
||||
# Diese vier fehlten: eine geaenderte Kategorie oder ein anderer
|
||||
# SSH-Port stand nirgends, obwohl beides das Verhalten aendert.
|
||||
("SSH-Port", str(row["ssh_port"] or ""), str(validate_ssh_port(ssh_port) or "")),
|
||||
("Zugangsdaten", str(row["credential_id"] or ""), str(credential_id or "")),
|
||||
("Kategorie", str(row["category"] or ""), (category or "").strip()),
|
||||
("Standort", str(row["location"] or ""), (location or "").strip()),
|
||||
):
|
||||
if before != after:
|
||||
changes.append(f"{label}: {before or '-'} -> {after or '-'}")
|
||||
|
||||
Reference in new issue
Block a user