diff --git a/app/devices/device_edit.php b/app/devices/device_edit.php index 20e915e0cf..4fbe0c5314 100644 --- a/app/devices/device_edit.php +++ b/app/devices/device_edit.php @@ -58,7 +58,7 @@ require_once "resources/require.php"; //devices $device_mac_address = check_str($_POST["device_mac_address"]); $device_mac_address = strtolower($device_mac_address); - $device_mac_address = preg_replace('#[^a-fA-F0-9./]#', '', $device_mac_address); + $_POST["device_mac_address"] = preg_replace('#[^a-fA-F0-9./]#', '', $device_mac_address); $device_label = check_str($_POST["device_label"]); $device_vendor = check_str($_POST["device_vendor"]); $device_model = check_str($_POST["device_model"]); @@ -134,186 +134,107 @@ require_once "resources/require.php"; //add or update the database if ($_POST["persistformvar"] != "true") { - if ($action == "add" && permission_exists('device_add')) { - //set the device_uuid - $device_uuid = uuid(); - - //add device - $sql = "insert into v_devices "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "device_uuid, "; - $sql .= "device_mac_address, "; - $sql .= "device_label, "; - $sql .= "device_vendor, "; - $sql .= "device_model, "; - $sql .= "device_firmware_version, "; - $sql .= "device_provision_enable, "; - $sql .= "device_template, "; - $sql .= "device_username, "; - $sql .= "device_password, "; - $sql .= "device_time_zone, "; - $sql .= "device_description "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'$domain_uuid', "; - $sql .= "'$device_uuid', "; - $sql .= "'$device_mac_address', "; - $sql .= "'$device_label', "; - $sql .= "'$device_vendor', "; - $sql .= "'$device_model', "; - $sql .= "'$device_firmware_version', "; - $sql .= "'$device_provision_enable', "; - $sql .= "'$device_template', "; - $sql .= "'$device_username', "; - $sql .= "'$device_password', "; - $sql .= "'$device_time_zone', "; - $sql .= "'$device_description' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); - } //if ($action == "add") - - //update the device - if ($action == "update" && permission_exists('device_edit')) { - $sql = "update v_devices set "; - $sql .= "device_mac_address = '$device_mac_address', "; - $sql .= "device_label = '$device_label', "; - $sql .= "device_vendor = '$device_vendor', "; - $sql .= "device_model = '$device_model', "; - $sql .= "device_firmware_version = '$device_firmware_version', "; - $sql .= "device_provision_enable = '$device_provision_enable', "; - $sql .= "device_template = '$device_template', "; - $sql .= "device_username = '$device_username', "; - $sql .= "device_password = '$device_password', "; - $sql .= "device_time_zone = '$device_time_zone', "; - $sql .= "device_description = '$device_description' "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and device_uuid = '$device_uuid'"; - $db->exec(check_sql($sql)); - unset($sql); + /* + //remove the invalid characters from the extension name + foreach ($_POST as $key => $value) { + if ($key == "dialplan_name") { + $dialplan_name = str_replace(" ", "_", $value); + $dialplan_name = str_replace("/", "", $dialplan_name); + $_POST["dialplan_name"] = $dialplan_name; + } + } + */ + //add domain_uuid to the array + if (!isset($_POST["domain_uuid"])) { + $_POST["domain_uuid"] = $_SESSION["domain_uuid"]; + } + foreach ($_POST as $key => $value) { + if (is_array($value)) { + $y = 0; + foreach ($value as $k => $v) { + if (!isset($v["domain_uuid"])) { + $_POST[$key][$y]["domain_uuid"] = $_SESSION["domain_uuid"]; + } + $y++; + } + } + } + //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]); + } + //unset dialplan_detail_uuid if the field has no value + if (strlen($row["device_line_uuid"]) == 0) { + unset($_POST["device_lines"][$x]["device_line_uuid"]); + } + //increment the row + $x++; + } + $x = 0; + foreach ($_POST["device_keys"] as $row) { + //unset the empty row + if (strlen($row["device_key_id"]) == 0) { + unset($_POST["device_keys"][$x]); + } + //unset dialplan_detail_uuid if the field has no value + if (strlen($row["device_key_uuid"]) == 0) { + unset($_POST["device_keys"][$x]["device_key_uuid"]); + } + //increment the row + $x++; + } + $x = 0; + foreach ($_POST["device_settings"] as $row) { + //unset the empty row + if (strlen($row["device_setting_subcategory"]) == 0) { + unset($_POST["device_settings"][$x]); + } + //unset dialplan_detail_uuid if the field has no value + if (strlen($row["device_setting_uuid"]) == 0) { + unset($_POST["device_settings"][$x]["device_setting_uuid"]); + } + //increment the row + $x++; } - //add line to the device - if (strlen($user_id) > 0 && permission_exists('device_add')) { - $sql = "insert into v_device_lines "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "device_line_uuid, "; - $sql .= "device_uuid, "; - $sql .= "line_number, "; - $sql .= "server_address, "; - $sql .= "outbound_proxy, "; - $sql .= "display_name, "; - $sql .= "user_id, "; - $sql .= "auth_id, "; - $sql .= "password "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'$domain_uuid', "; - $sql .= "'".uuid()."', "; - $sql .= "'$device_uuid', "; - $sql .= "'$line_number', "; - $sql .= "'$server_address', "; - $sql .= "'$outbound_proxy', "; - $sql .= "'$display_name', "; - $sql .= "'$user_id', "; - $sql .= "'$auth_id', "; - $sql .= "'$password' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); - } + //add or update the database + if ($_POST["persistformvar"] != "true") { + $orm = new orm; + $orm->name('devices'); + if (strlen($device_uuid) > 0) { + $orm->uuid($device_uuid); + } - //add a device key - if (strlen($device_key_id) > 0 && permission_exists('device_key_add')) { - $sql = "insert into v_device_keys "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "device_uuid, "; - $sql .= "device_key_uuid, "; - $sql .= "device_key_id, "; - $sql .= "device_key_category, "; - $sql .= "device_key_type, "; - $sql .= "device_key_line, "; - $sql .= "device_key_value, "; - $sql .= "device_key_extension, "; - $sql .= "device_key_label "; - $sql .= ")"; - $sql .= " values "; - $sql .= "("; - $sql .= "'$domain_uuid', "; - $sql .= "'$device_uuid', "; - $sql .= "'".uuid()."', "; - $sql .= "'$device_key_id', "; - $sql .= "'$device_key_category', "; - $sql .= "'$device_key_type', "; - $sql .= "'$device_key_line', "; - $sql .= "'$device_key_value', "; - $sql .= "'$device_key_extension', "; - $sql .= "'$device_key_label' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); - } - - //add a device setting - if (strlen($device_setting_subcategory) > 0 && permission_exists('device_setting_add')) { - $device_setting_category = "provision"; - $device_setting_name = "text"; - $sql = "insert into v_device_settings "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "device_uuid, "; - $sql .= "device_setting_uuid, "; - $sql .= "device_setting_category, "; - $sql .= "device_setting_subcategory, "; - $sql .= "device_setting_name, "; - $sql .= "device_setting_value, "; - $sql .= "device_setting_enabled, "; - $sql .= "device_setting_description "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'$domain_uuid', "; - $sql .= "'$device_uuid', "; - $sql .= "'".uuid()."', "; - $sql .= "'$device_setting_category', "; - $sql .= "'$device_setting_subcategory', "; - $sql .= "'$device_setting_name', "; - $sql .= "'$device_setting_value', "; - $sql .= "'$device_setting_enabled', "; - $sql .= "'$device_setting_description' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); + $orm->save($_POST); + $message = $orm->message; } //write the provision files - require_once "app/provision/provision_write.php"; +// 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']; + } - //redirect the user - require_once "resources/header.php"; - echo "\n"; - echo "
| ".$text['header-device']." | \n"; echo "\n"; - echo " \n"; + echo " \n"; echo " \n"; echo " | \n"; echo "".$text['label-password']." | \n"; echo "\n"; echo " \n"; - $sql = "SELECT * FROM v_device_lines "; - $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; - $sql .= "and device_uuid = '".$device_uuid."' "; - $sql .= "order by line_number asc "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - $result_count = count($result); - foreach($result as $row) { + + $x = 0; + foreach($device_lines as $row) { //if (strlen($row['line_number']) == 0) { $row['line_number'] = "1"; } echo " | ||||
| \n"; @@ -484,10 +467,13 @@ require_once "resources/require.php"; } echo " | \n"; echo "|||||||
| \n"; - echo " | \n"; echo "\n"; - echo " \n"; + echo " \n"; echo " | \n"; echo "\n"; - echo " \n"; + echo " \n"; echo " | \n"; echo "\n"; - echo " \n"; + echo " \n"; echo " | \n"; echo "\n"; - echo " \n"; + echo " \n"; echo " | \n"; echo "\n"; - echo " \n"; + echo " \n"; echo " | \n"; echo "\n"; - echo " \n"; + echo " \n"; echo " | \n"; echo "\n"; - echo " \n"; + echo " \n"; echo " | \n"; echo "