From 02c9326143080037d905d041ff98e6241fa73dd0 Mon Sep 17 00:00:00 2001 From: Nate Date: Sat, 11 Jan 2020 10:21:17 -0700 Subject: [PATCH] Devices - Import/Export: List mods, token fix, etc. --- app/devices/device_download.php | 31 +++++++------- app/devices/device_imports.php | 76 ++++++++++++++++----------------- 2 files changed, 52 insertions(+), 55 deletions(-) diff --git a/app/devices/device_download.php b/app/devices/device_download.php index f6662fcbbb..6b83eb4233 100644 --- a/app/devices/device_download.php +++ b/app/devices/device_download.php @@ -77,12 +77,12 @@ //define possible columns in the array - $allowed_columns[] = 'device_uuid'; - $allowed_columns[] = 'domain_uuid'; - $allowed_columns[] = 'device_mac_address'; - $allowed_columns[] = 'device_label'; - $allowed_columns[] = 'device_template'; - $allowed_columns[] = 'device_description'; + $available_columns[] = 'device_uuid'; + $available_columns[] = 'domain_uuid'; + $available_columns[] = 'device_mac_address'; + $available_columns[] = 'device_label'; + $available_columns[] = 'device_template'; + $available_columns[] = 'device_description'; //get the devices and send them as output $column_group = $_REQUEST["column_group"]; @@ -98,7 +98,7 @@ //validate columns foreach ($column_group as $index => $column_name) { - if (!in_array($column_name, $allowed_columns)) { + if (!in_array($column_name, $available_columns)) { unset($column_group[$index]); } } @@ -115,7 +115,7 @@ //print_r($extensions); if (is_array($devices) && @sizeof($devices) != 0) { - download_send_headers("data_export_".date("Y-m-d").".csv"); + download_send_headers("device_export_".date("Y-m-d").".csv"); echo array2csv($devices); exit; } @@ -134,7 +134,7 @@ //show the content echo "
\n"; - echo "
\n"; + echo "
\n"; echo "
".$text['header-device_export']."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'link'=>'devices.php']); @@ -146,21 +146,20 @@ echo "\n"; echo "\n"; echo " \n"; echo " \n"; - echo " \n"; echo "\n"; - if (is_array($allowed_columns) && @sizeof($allowed_columns) != 0) { + if (is_array($available_columns) && @sizeof($available_columns) != 0) { $x = 0; - foreach ($allowed_columns as $column_name) { + foreach ($available_columns as $column_name) { + $list_row_onclick = "if (!this.checked) { document.getElementById('checkbox_all').checked = false; }"; echo "\n"; echo " \n"; - echo " "; - echo " "; + echo " "; echo ""; $x++; } diff --git a/app/devices/device_imports.php b/app/devices/device_imports.php index 72e93b8f23..ca9b79beeb 100644 --- a/app/devices/device_imports.php +++ b/app/devices/device_imports.php @@ -93,7 +93,7 @@ //get the schema $x = 0; - include ("app/devices/app_config.php"); + include "app/devices/app_config.php"; $i = 0; foreach ($apps[0]['db'] as $table) { //get the table name and parent name @@ -113,7 +113,7 @@ $table_name == "device_keys" || $table_name == "device_settings") { $schema[$i]['table'] = $table_name; $schema[$i]['parent'] = $parent_name; - foreach($table['fields'] as $row) { + foreach ($table['fields'] as $row) { if ($row['deprecated'] !== 'true') { if (is_array($row['name'])) { $field_name = $row['name']['text']; @@ -137,6 +137,18 @@ //match the column names to the field names if (strlen($delimiter) > 0 && file_exists($_SESSION['file']) && $action != 'import') { + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: device_imports.php'); + exit; + } + + //create token + $object = new token; + $token = $object->create($_SERVER['PHP_SELF']); + //include header $document['title'] = $text['title-device_import']; require_once "resources/header.php"; @@ -163,13 +175,13 @@ foreach ($line_fields as $line_field) { $line_field = trim(trim($line_field), $enclosure); echo "\n"; - echo "\n"; - echo "\n"; + echo " \n"; - echo " \n"; + echo " \n"; + echo "\n"; $x++; } - echo " \n"; - echo " \n"; - echo " \n"; + echo "
\n"; - echo " \n"; + echo " \n"; echo " ".$text['label-column_name']."".$text['label-description']."
\n"; - echo " \n"; + echo " \n"; echo " ".$column_name." ".$column_name."
\n"; + echo " \n"; //echo " ".$text['label-zzz']."\n"; echo $line_field; - echo "\n"; - echo " \n"; + echo " \n"; + echo " \n"; //echo "
\n"; //echo $text['description-zzz']."\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"; @@ -237,14 +244,10 @@ $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: users.php'); + header('Location: device_imports.php'); exit; } - //form to match the fields to the column names - //$document['title'] = $text['title-device_import']; - //require_once "resources/header.php"; - //user selected fields $fields = $_POST['fields']; @@ -441,25 +444,20 @@ echo "\n"; echo "\n"; - echo " ".$text['label-import_file_upload']."\n"; + echo " ".$text['label-import_file_upload']."\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 "

"; + + echo "\n"; + echo "\n"; + echo ""; //include the footer