From 2765e441a56efed87254c1797d17f038c6e51b98 Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Sat, 14 Feb 2026 10:43:24 +1100 Subject: [PATCH] BE+FE: Check if current mac != parent mac for network page setup #1513 Signed-off-by: jokob-sk --- front/deviceDetailsEdit.php | 7 ++++++- server/db/db_helper.py | 2 ++ server/models/device_instance.py | 6 ++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/front/deviceDetailsEdit.php b/front/deviceDetailsEdit.php index c9acb3a5..d121e8c8 100755 --- a/front/deviceDetailsEdit.php +++ b/front/deviceDetailsEdit.php @@ -479,7 +479,12 @@ function setDeviceData(direction = '', refreshCallback = '') { if (resp && resp.success) { showMessage(getString("Device_Saved_Success")); } else { - showMessage(getString("Device_Saved_Unexpected")); + + console.log(resp); + + errorMessage = resp?.error; + + showMessage(`${getString("Device_Saved_Unexpected")}: ${errorMessage}`, 5000, "modal_red"); } // Remove navigation prompt diff --git a/server/db/db_helper.py b/server/db/db_helper.py index 71a6ca6a..d749b9e2 100755 --- a/server/db/db_helper.py +++ b/server/db/db_helper.py @@ -14,6 +14,7 @@ from const import NULL_EQUIVALENTS_SQL # noqa: E402 [flake8 lint suppression] def get_device_conditions(): network_dev_types = ",".join(f"'{v.replace('\'', '\'\'')}'" for v in get_setting_value("NETWORK_DEVICE_TYPES")) + # DO NOT CHANGE ORDER conditions = { "all": "WHERE devIsArchived=0", "my": "WHERE devIsArchived=0", @@ -27,6 +28,7 @@ def get_device_conditions(): "network_devices_down": f"WHERE devIsArchived=0 AND devType in ({network_dev_types}) AND devPresentLastScan=0", "unknown": f"WHERE devIsArchived=0 AND devName in ({NULL_EQUIVALENTS_SQL})", "known": f"WHERE devIsArchived=0 AND devName not in ({NULL_EQUIVALENTS_SQL})", + "favorites_offline": "WHERE devIsArchived=0 AND devFavorite=1 AND devPresentLastScan=0", } return conditions diff --git a/server/models/device_instance.py b/server/models/device_instance.py index afd9898e..a2f90bd3 100755 --- a/server/models/device_instance.py +++ b/server/models/device_instance.py @@ -536,6 +536,12 @@ class DeviceInstance: normalized_mac = normalize_mac(mac) normalized_parent_mac = normalize_mac(data.get("devParentMAC") or "") + if normalized_mac == normalized_parent_mac: + return { + "success": False, + "error": "Can't set current node as the node parent." + } + fields_updated_by_set_device_data = { "devName", "devOwner",