dev #1

Merged
alientim merged 145 commits from dev into main 2025-10-12 13:44:14 +02:00
Showing only changes of commit 02122f966a - Show all commits

View File

@@ -148,7 +148,7 @@ def devices():
if request.method == 'POST':
# -----------------------
# Inline-Add
# Gerät hinzufügen
# -----------------------
if 'add_device' in request.form:
if not current_user.is_admin:
@@ -166,6 +166,18 @@ def devices():
flash("Alle Felder müssen ausgefüllt sein!")
return redirect(url_for('devices'))
# Prüfen auf doppelte MAC
mac_device = conn.execute("SELECT name FROM devices WHERE mac=?", (mac,)).fetchone()
if mac_device:
flash(f"MAC-Adresse existiert bereits für Gerät '{mac_device['name']}'!")
return redirect(url_for('devices'))
# Prüfen auf doppelte IP
ip_device = conn.execute("SELECT name FROM devices WHERE rpi_ip=?", (rpi_ip,)).fetchone()
if ip_device:
flash(f"IP-Adresse existiert bereits für Gerät '{ip_device['name']}'!")
return redirect(url_for('devices'))
try:
conn.execute("""
INSERT INTO devices (mac, rpi_ip, port, name, switch_hostname, is_active)
@@ -174,10 +186,10 @@ def devices():
conn.commit()
flash(f"Gerät {name} hinzugefügt.")
except sqlite3.IntegrityError:
flash("MAC existiert bereits oder Eingabefehler!")
flash("Fehler beim Hinzufügen des Geräts!")
# -----------------------
# Inline-Edit
# Gerät bearbeiten
# -----------------------
elif 'edit_device' in request.form:
if not current_user.is_admin:
@@ -196,6 +208,18 @@ def devices():
flash("Alle Felder müssen ausgefüllt sein!")
return redirect(url_for('devices'))
# Prüfen auf doppelte MAC außer das aktuelle Gerät
mac_device = conn.execute("SELECT name FROM devices WHERE mac=? AND mac<>?", (mac, old_mac)).fetchone()
if mac_device:
flash(f"MAC-Adresse existiert bereits für Gerät '{mac_device['name']}'!")
return redirect(url_for('devices'))
# Prüfen auf doppelte IP außer das aktuelle Gerät
ip_device = conn.execute("SELECT name FROM devices WHERE rpi_ip=? AND mac<>?", (rpi_ip, old_mac)).fetchone()
if ip_device:
flash(f"IP-Adresse existiert bereits für Gerät '{ip_device['name']}'!")
return redirect(url_for('devices'))
try:
conn.execute("""
UPDATE devices
@@ -205,10 +229,10 @@ def devices():
conn.commit()
flash(f"Gerät {name} aktualisiert.")
except sqlite3.IntegrityError:
flash("MAC existiert bereits oder Eingabefehler!")
flash("Fehler beim Aktualisieren des Geräts!")
# -----------------------
# Inline-Delete
# Gerät löschen
# -----------------------
elif 'delete_device' in request.form:
if not current_user.is_admin: