diff --git a/app/devices/device_edit.php b/app/devices/device_edit.php index dd26fd05c7..2b99a5bf31 100644 --- a/app/devices/device_edit.php +++ b/app/devices/device_edit.php @@ -41,6 +41,31 @@ require_once "resources/require.php"; $text[$key] = $value[$_SESSION['domain']['language']['code']]; } +// check duplicate mac address + if ($_GET["mac"] != '' && $_GET["mac"] != "000000000000") { + $sql = "select "; + $sql .= "d2.domain_name "; + $sql .= "from "; + $sql .= "v_devices as d1, "; + $sql .= "v_domains as d2 "; + $sql .= "where "; + $sql .= "d1.domain_uuid = d2.domain_uuid and "; + $sql .= "d1.device_mac_address = '".check_str($_GET["mac"])."' "; + if ($_GET["id"] != '') { + $sql .= " and d1.device_uuid <> '".check_str($_GET["id"])."' "; + } + $prep_statement = $db->prepare($sql); + if ($prep_statement) { + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_ASSOC); + if ($row['domain_name'] != '') { + echo $text['message-duplicate'].((if_group("superadmin") && $_SESSION["domain_name"] != $row["domain_name"]) ? ": ".$row["domain_name"] : null); + } + } + unset($prep_statement); + exit; + } + //include the device class require_once "app/devices/resources/classes/device.php"; @@ -193,21 +218,7 @@ require_once "resources/require.php"; //allow duplicates to be used as templaes } else { - $sql = "SELECT count(*) AS num_rows FROM v_devices "; - $sql .= "WHERE device_mac_address = '".$device_mac_address."' "; - $prep_statement = $db->prepare($sql); - if ($prep_statement) { - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_ASSOC); - if ($row['num_rows'] == "0") { - $save = true; - } - else { - $save = false; - $_SESSION['message'] = $text['message-duplicate']; - } - } - unset($prep_statement); + $save = true; } } else { @@ -237,6 +248,7 @@ require_once "resources/require.php"; if ($action == "add") { //save the message to a session variable $_SESSION['message'] = $text['message-add']; + $_SESSION['message_mood'] = 'positive'; //redirect the browser header("Location: device_edit.php?id=$device_uuid"); exit; @@ -244,6 +256,7 @@ require_once "resources/require.php"; if ($action == "update") { //save the message to a session variable $_SESSION['message'] = $text['message-update']; + $_SESSION['message_mood'] = 'positive'; } } } @@ -369,9 +382,36 @@ require_once "resources/require.php"; obj[0].parentNode.removeChild(obj[1]); obj[0].parentNode.removeChild(obj[2]); } + + + function check_mac_duplicate(mac_addr, device_uuid_to_ignore) { + if (mac_addr != '') { + var response; + check_url = "device_edit.php?mac="+mac_addr+"&id="+device_uuid_to_ignore; + $("#duplicate_mac_response").load(check_url, function() { + var duplicate_mac_response = $("#duplicate_mac_response").html(); + if (duplicate_mac_response != '') { + $('#device_mac_address').addClass('formfld_highlight_bad'); + display_message(duplicate_mac_response, 'negative'); + $('#duplicate_mac_found').val(true); + } + else { + $('#device_mac_address').removeClass('formfld_highlight_bad'); + $('#duplicate_mac_found').val(false); + } + }); + return ($('#duplicate_mac_found').val() == "true") ? false : true; + } + else { + return true; + } + } + + + + "; echo "
| \n";
echo " "; - echo " |