diff --git a/app/devices/device_edit.php b/app/devices/device_edit.php index 6cd05efbad..ea89761764 100644 --- a/app/devices/device_edit.php +++ b/app/devices/device_edit.php @@ -58,15 +58,14 @@ require_once "resources/require.php"; //devices $device_mac_address = check_str($_POST["device_mac_address"]); $device_mac_address = strtolower($device_mac_address); - $_POST["device_mac_address"] = preg_replace('#[^a-fA-F0-9./]#', '', $device_mac_address); + $device_mac_address = preg_replace('#[^a-fA-F0-9./]#', '', $device_mac_address); + $_POST["device_mac_address"] = $device_mac_address; $device_label = check_str($_POST["device_label"]); $device_vendor = check_str($_POST["device_vendor"]); $device_model = check_str($_POST["device_model"]); $device_firmware_version = check_str($_POST["device_firmware_version"]); $device_provision_enable = check_str($_POST["device_provision_enable"]); $device_template = check_str($_POST["device_template"]); - $device_username = check_str($_POST["device_username"]); - $device_password = check_str($_POST["device_password"]); $device_time_zone = check_str($_POST["device_time_zone"]); $device_description = check_str($_POST["device_description"]); //lines @@ -102,12 +101,8 @@ require_once "resources/require.php"; //add or update the database if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { - $msg = ''; - if ($action == "update") { - $device_uuid = check_str($_POST["device_uuid"]); - } - //check for all required data + $msg = ''; if (strlen($device_mac_address) == 0) { $msg .= $text['message-required'].$text['label-extension']."
\n"; } //if (strlen($device_label) == 0) { $msg .= "Please provide: Label
\n"; } //if (strlen($device_vendor) == 0) { $msg .= "Please provide: Vendor
\n"; } @@ -134,16 +129,7 @@ require_once "resources/require.php"; //add or update the database if ($_POST["persistformvar"] != "true") { - /* - //remove the invalid characters from the extension name - foreach ($_POST as $key => $value) { - if ($key == "device_name") { - $device_name = str_replace(" ", "_", $value); - $device_name = str_replace("/", "", $device_name); - $_POST["device_name"] = $device_name; - } - } - */ + //add domain_uuid to the array if (!isset($_POST["domain_uuid"])) { $_POST["domain_uuid"] = $_SESSION["domain_uuid"]; @@ -162,7 +148,6 @@ require_once "resources/require.php"; //array cleanup $x = 0; foreach ($_POST["device_lines"] as $row) { - // //unset the empty row if (strlen($row["line_number"]) == 0) { unset($_POST["device_lines"][$x]); @@ -201,26 +186,63 @@ require_once "resources/require.php"; $x++; } - //add or update the database - if ($_POST["persistformvar"] != "true") { + //set the default + $save = true; + + //check to see if the mac address exists + if ($action == "add") { + $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); + } + else { + $save = true; + } + + //save the device + if ($save) { $orm = new orm; $orm->name('devices'); if (strlen($device_uuid) > 0) { $orm->uuid($device_uuid); } $orm->save($_POST); - $message = $orm->message; + $response = $orm->message; + if (strlen($response['uuid']) > 0) { + $device_uuid = $response['uuid']; + } } //write the provision files require_once "app/provision/provision_write.php"; //set the message - if ($action == "add") { - $_SESSION['message'] = $text['message-add']; - } - if ($action == "update") { - $_SESSION['message'] = $text['message-update']; + if (!isset($_SESSION['message'])) { + if ($save) { + if ($action == "add") { + //save the message to a session variable + $_SESSION['message'] = $text['message-add']; + //redirect the browser + header("Location: device_edit.php?id=$device_uuid"); + exit; + } + if ($action == "update") { + //save the message to a session variable + $_SESSION['message'] = $text['message-update']; + } + } } } //if ($_POST["persistformvar"] != "true") @@ -228,7 +250,6 @@ require_once "resources/require.php"; //pre-populate the form if (count($_GET) > 0 && $_POST["persistformvar"] != "true") { - $device_uuid = check_str($_GET["id"]); $orm = new orm; $orm->name('devices'); $orm->uuid($device_uuid); @@ -243,8 +264,6 @@ require_once "resources/require.php"; $device_firmware_version = $row["device_firmware_version"]; $device_provision_enable = $row["device_provision_enable"]; $device_template = $row["device_template"]; - $device_username = $row["device_username"]; - $device_password = $row["device_password"]; $device_time_zone = $row["device_time_zone"]; $device_description = $row["device_description"]; }