Portions created by the Initial Developer are Copyright (C) 2008-2012 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; if (permission_exists('device_add')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support require_once "app_languages.php"; foreach($text as $key => $value) { $text[$key] = $value[$_SESSION['domain']['language']['code']]; } //set the http get/post variable(s) to a php variable if (isset($_REQUEST["id"]) && isset($_REQUEST["mac"])) { $device_uuid = check_str($_REQUEST["id"]); $mac_address_new = check_str($_REQUEST["mac"]); $mac_address_new = preg_replace('#[^a-fA-F0-9./]#', '', $mac_address_new); } //get the device $sql = "SELECT * FROM v_devices "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "and device_uuid = '".$device_uuid."' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $devices = $prep_statement->fetchAll(PDO::FETCH_NAMED); //get device lines $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(); $device_lines = $prep_statement->fetchAll(PDO::FETCH_NAMED); //get device keys $sql = "SELECT * FROM v_device_keys "; $sql .= "WHERE domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "AND device_uuid = '".$device_uuid."' "; $sql .= "ORDER by "; $sql .= "CASE device_key_category "; $sql .= "WHEN 'line' THEN 1 "; $sql .= "WHEN 'memort' THEN 2 "; $sql .= "WHEN 'programmable' THEN 3 "; $sql .= "WHEN 'expansion' THEN 4 "; $sql .= "ELSE 100 END, "; $sql .= "cast(device_key_id as numeric) asc "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $device_keys = $prep_statement->fetchAll(PDO::FETCH_NAMED); //get device settings $sql = "SELECT * FROM v_device_settings "; $sql .= "WHERE domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "AND device_uuid = '".$device_uuid."' "; $sql .= "ORDER by device_setting_subcategory asc "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $device_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED); //prepare the devices array unset($devices[0]["device_uuid"]); //prepare the device_lines array $x = 0; foreach ($device_lines as $row) { unset($device_lines[$x]["device_uuid"]); unset($device_lines[$x]["device_line_uuid"]); $x++; } //prepare the device_keys array $x = 0; foreach ($device_keys as $row) { unset($device_keys[$x]["device_uuid"]); unset($device_keys[$x]["device_key_uuid"]); $x++; } //prepare the device_settings array $x = 0; foreach ($device_settings as $row) { unset($device_settings[$x]["device_uuid"]); unset($device_settings[$x]["device_setting_uuid"]); $x++; } //create the device array $device = $devices[0]; $device["device_mac_address"] = $mac_address_new; $device["device_lines"] = $device_lines; $device["device_keys"] = $device_keys; $device["device_settings"] = $device_settings; //copy the device $orm = new orm; $orm->name('devices'); $orm->save($device); $response = $orm->message; //redirect $_SESSION["message"] = $text['message-copy']; header("Location: devices.php"); return; ?>