From f502d93854da8e3bd4ff6d75c71a1c2299a98cb0 Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Sun, 14 Jul 2024 21:37:11 +1000 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=A9Import=20Pasted=20CSV=20+=20?= =?UTF-8?q?=F0=9F=93=9ADocs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/PLUGINS_DEV.md | 10 +++++ front/maintenance.php | 52 ++++++++++++++++++------- front/php/server/devices.php | 21 ++++++++-- front/php/templates/language/de_de.json | 3 ++ front/php/templates/language/en_us.json | 5 ++- front/php/templates/language/es_es.json | 5 ++- front/php/templates/language/fr_fr.json | 3 ++ front/php/templates/language/it_it.json | 3 ++ front/php/templates/language/nb_no.json | 3 ++ front/php/templates/language/pl_pl.json | 3 ++ front/php/templates/language/pt_br.json | 3 ++ front/php/templates/language/ru_ru.json | 5 ++- front/php/templates/language/tr_tr.json | 3 ++ front/php/templates/language/zh_cn.json | 3 ++ 14 files changed, 102 insertions(+), 20 deletions(-) diff --git a/docs/PLUGINS_DEV.md b/docs/PLUGINS_DEV.md index e0671e52..e7cf38c7 100755 --- a/docs/PLUGINS_DEV.md +++ b/docs/PLUGINS_DEV.md @@ -91,6 +91,16 @@ More on specifics below. The `config.json` file is the manifest of the plugin. It contains mainly settings definitions and the mapping of Plugin objects to NetAlertX objects. +## Execution order + +The execution order is used to specify wwhen a plugin is executed. This is useful if a plugin has access and surfaces more information than others. If a device is detected by 2 plugins and inserted into the `CurrentScan` table, the plugin with the higher priority (e.g.: `Level_0` is a higher priority than `Level_1`) will insert it's values first. These values (devices) will be then prioritized over any values inserted later. + +```json +{ + "execution_order" : "Layer_0" +} +``` + ## Supported data sources Currently, these data sources are supported (valid `data_source` value). diff --git a/front/maintenance.php b/front/maintenance.php index 280e1b38..813802d9 100755 --- a/front/maintenance.php +++ b/front/maintenance.php @@ -370,9 +370,27 @@ $db->close();
+
+
+ +
+
+
- + +
+
+
+
+
+ +
+
+
+
+
+
@@ -388,18 +406,6 @@ $db->close();
-
-
- -
-
-
-
-
- -
-
-
@@ -686,6 +692,26 @@ function ImportCSV() }); } +// ----------------------------------------------------------- +// Import pasted CSV +function askImportPastedCSV() { + + // Add new icon as base64 string + showModalInput (' ', '', + '', '', 'ImportPastedCSV'); +} + +function ImportPastedCSV() +{ + var csv = $('#modal-input-textarea').val(); + csvBase64 = btoa(csv) + // Execute + $.get('php/server/devices.php?action=ImportCSV&content=', function(msg) { + showMessage (msg); + write_notification(`[Maintenance] Devices imported from pasted content`, 'info') + }); +} + // -------------------------------------------------------- // Switch Darkmode diff --git a/front/php/server/devices.php b/front/php/server/devices.php index 82022a48..2219bc9b 100755 --- a/front/php/server/devices.php +++ b/front/php/server/devices.php @@ -463,15 +463,30 @@ function ExportCSV() { // Import CSV of devices //------------------------------------------------------------------------------ function ImportCSV() { - $file = '../../../config/devices.csv'; - if (file_exists($file)) { + $file = '../../../config/devices.csv'; + $data = ""; + + // check if content passed in query string + if(isset ($_REQUEST['content']) && !empty ($_REQUEST['content'])) + { + + // Decode the Base64 string + $data = base64_decode($_REQUEST['content']); + + } else if (file_exists($file)) { // try to get the data form the file global $db; $skipped = ""; $error = ""; // Read the CSV file $data = file_get_contents($file); + } else { + echo lang('BackDevices_DBTools_ImportCSVMissing'); + } + + if($data != "") + { $lines = explode("\n", $data); // Get the column headers from the first line of the CSV @@ -517,8 +532,6 @@ function ImportCSV() { // An error occurred while writing to the DB, display the last error message echo lang('BackDevices_DBTools_ImportCSVError') . "\n" . $error . "\n" . $sql . "\n\n" . $result; } - } else { - echo lang('BackDevices_DBTools_ImportCSVMissing'); } } diff --git a/front/php/templates/language/de_de.json b/front/php/templates/language/de_de.json index 51c270af..3090a8e6 100755 --- a/front/php/templates/language/de_de.json +++ b/front/php/templates/language/de_de.json @@ -398,6 +398,9 @@ "Maintenance_Tool_ImportCSV_noti": "CSV Import", "Maintenance_Tool_ImportCSV_noti_text": "Sind Sie sich sicher, dass Sie die CSV-Datei importieren wollen? Dies wird alle Geräte in der Datenbank überschreiben.", "Maintenance_Tool_ImportCSV_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Importiere eine CSV-Datei (comma separated values) mit einer Liste aller Geräte und deren Beziehungen zwischen Netzwerkknoten und verbundenen Geräten. Um dies zu tun platziere die devices.csv benannte CSV-Datei in deinen /config Ordner.", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "arp-Scan stoppen/starten", "Maintenance_Tool_arpscansw_noti": "arp-Scan stoppen/starten", "Maintenance_Tool_arpscansw_noti_text": "Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird.", diff --git a/front/php/templates/language/en_us.json b/front/php/templates/language/en_us.json index 3e3d1bd9..cd1a3db7 100755 --- a/front/php/templates/language/en_us.json +++ b/front/php/templates/language/en_us.json @@ -370,8 +370,11 @@ "Maintenance_Tool_ExportCSV_text": "Generate a CSV (comma separated value) file containing the list of Devices including the Network relationships between Network Nodes and connected devices. You can also trigger this by accessing this URL your NetAlertX url/php/server/devices.php?action=ExportCSV or by enabling the CSV Backup plugin.", "Maintenance_Tool_ImportCSV": "CSV Import", "Maintenance_Tool_ImportCSV_noti": "CSV Import", - "Maintenance_Tool_ImportCSV_noti_text": "Are you sure you want to import the CSV file? This will completely overwrite the devices in your database.", + "Maintenance_Tool_ImportCSV_noti_text": "Are you sure you want to import the CSV file? This will completely overwrite the devices in your database.", "Maintenance_Tool_ImportCSV_text": "Before using this function, please make a backup. Import a CSV (comma separated value) file containing the list of Devices including the Network relationships between Network Nodes and connected devices. To do that place the CSV file named devices.csv into your /config folder.", + "Maintenance_Tool_ImportPastedCSV": "CSV Import (Paste)", + "Maintenance_Tool_ImportPastedCSV_noti_text": "Are you sure you want to import the pasted CSV? This will completely overwrite the devices in your database.", + "Maintenance_Tool_ImportPastedCSV_text": "Before using this function, please make a backup. Import a CSV (comma separated value) file containing the list of Devices including the Network relationships between Network Nodes and connected devices.", "Maintenance_Tool_arpscansw": "Toggle arp-Scan (on/off)", "Maintenance_Tool_arpscansw_noti": "Toggle arp-Scan on or off", "Maintenance_Tool_arpscansw_noti_text": "When the scan has been switched off it remains off until it is activated again.", diff --git a/front/php/templates/language/es_es.json b/front/php/templates/language/es_es.json index a3b455bd..41a9c8b9 100755 --- a/front/php/templates/language/es_es.json +++ b/front/php/templates/language/es_es.json @@ -396,6 +396,9 @@ "Maintenance_Tool_ImportCSV_noti": "Importación CSV", "Maintenance_Tool_ImportCSV_noti_text": "¿Está seguro de que quiere importar el archivo CSV? Esto sobrescribirá completamente los dispositivos de su base de datos.", "Maintenance_Tool_ImportCSV_text": "Antes de usar esta función, haga una copia de seguridad. Importe un archivo CSV (valor separado por comas) que contiene la lista de dispositivos, incluidas las relaciones de red entre nodos de red y dispositivos conectados. Para hacer eso, coloque el archivo CSV llamado devices.csv en su carpeta /config .", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "Activar arp-scan (on/off)", "Maintenance_Tool_arpscansw_noti": "Activar arp-scan on or off", "Maintenance_Tool_arpscansw_noti_text": "Cuando el escaneo se ha apagado, permanece apagado hasta que se active nuevamente.", @@ -767,4 +770,4 @@ "settings_update_item_warning": "Actualice el valor a continuación. Tenga cuidado de seguir el formato anterior. O la validación no se realiza.", "test_event_icon": "fa-vial-circle-check", "test_event_tooltip": "Guarda tus cambios antes de probar nuevos ajustes." -} +} \ No newline at end of file diff --git a/front/php/templates/language/fr_fr.json b/front/php/templates/language/fr_fr.json index e6f10c71..1f05914d 100755 --- a/front/php/templates/language/fr_fr.json +++ b/front/php/templates/language/fr_fr.json @@ -372,6 +372,9 @@ "Maintenance_Tool_ImportCSV_noti": "Importation CSV", "Maintenance_Tool_ImportCSV_noti_text": "Êtes-vous sûr de vouloir importer le fichier CSV ? Cela écrasera complètement les appareils de votre base de données.", "Maintenance_Tool_ImportCSV_text": "", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "Basculer l'arp-Scan (activé/désactivé)", "Maintenance_Tool_arpscansw_noti": "Activer ou désactiver l'arp-Scan", "Maintenance_Tool_arpscansw_noti_text": "Une fois le scan désactivé, il reste désactivé jusqu'à ce qu'il soit réactivé.", diff --git a/front/php/templates/language/it_it.json b/front/php/templates/language/it_it.json index 6e719823..a3eab9f5 100755 --- a/front/php/templates/language/it_it.json +++ b/front/php/templates/language/it_it.json @@ -372,6 +372,9 @@ "Maintenance_Tool_ImportCSV_noti": "Importa CSV", "Maintenance_Tool_ImportCSV_noti_text": "Sei sicuro di voler importare il file CSV? Questa operazione sovrascriverà tutti i dispositivi presenti nel database.", "Maintenance_Tool_ImportCSV_text": "Prima di utilizzare questa funzione, esegui un backup. Importa un file CSV (comma separated value) contenente la lista dei dispositivi incluse le relazioni di rete tra i nodi di rete e i dispositivi connessi. Per far ciò posiziona il file CSV denominato devices.csv nella cartella /config.", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "Attiva/disattiva arp-Scan", "Maintenance_Tool_arpscansw_noti": "Attiva o disattiva arp-Scan", "Maintenance_Tool_arpscansw_noti_text": "Una volta disattivata la scansione rimane disattivata finché non viene nuovamente attivata.", diff --git a/front/php/templates/language/nb_no.json b/front/php/templates/language/nb_no.json index 2d7649fe..c84b2aec 100755 --- a/front/php/templates/language/nb_no.json +++ b/front/php/templates/language/nb_no.json @@ -372,6 +372,9 @@ "Maintenance_Tool_ImportCSV_noti": "Importer CSV", "Maintenance_Tool_ImportCSV_noti_text": "Er du sikker på at du vil importere CSV-filen? Dette vil fullstendig overskrive enhetene i databasen din.", "Maintenance_Tool_ImportCSV_text": "Før du bruker denne funksjonen, vennligst ta en sikkerhetskopi. Importer en CSV-fil (kommaseparert verdi) som inneholder listen over enheter, inkludert nettverksrelasjoner mellom nettverksnoder og tilkoblede enheter. For å gjøre det, plasser CSV-filen med navnet devices.csv i mappen /config.", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "Slå arp-Scan (på/av)", "Maintenance_Tool_arpscansw_noti": "Slå arp-Scan på eller av", "Maintenance_Tool_arpscansw_noti_text": "Når skanningen er slått av, forblir den slått av til den aktiveres igjen.", diff --git a/front/php/templates/language/pl_pl.json b/front/php/templates/language/pl_pl.json index 96251f94..3f6a2e1e 100755 --- a/front/php/templates/language/pl_pl.json +++ b/front/php/templates/language/pl_pl.json @@ -372,6 +372,9 @@ "Maintenance_Tool_ImportCSV_noti": "Import CSV", "Maintenance_Tool_ImportCSV_noti_text": "Jesteś pewien że chcesz zaimportować plik CSV? Nadpisze to wszystkie urządzenie w bazie danych.", "Maintenance_Tool_ImportCSV_text": "Przed użyciem tej funkcji, wykonaj proszę kopię zapasową. Zaimportuj plik CSV (wartości oddzielone przecinkami) zawierający listę Urządzeń, w tym Relacji Sieci między sieciowymi węzłami i podłączonymi urządzeniami. By to zrobić umieść plik CSV nazwany devices.csv do twojego folderu /config.", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "Przełącz Skan-arp (wł/wył)", "Maintenance_Tool_arpscansw_noti": "Przełącz Skan-arp na włączony lub wyłączony", "Maintenance_Tool_arpscansw_noti_text": "Kiedy skan zostanie przełączony na wył zostaje wyłączony do czasu ponownej aktywacji.", diff --git a/front/php/templates/language/pt_br.json b/front/php/templates/language/pt_br.json index 3fc7127e..74f59937 100755 --- a/front/php/templates/language/pt_br.json +++ b/front/php/templates/language/pt_br.json @@ -372,6 +372,9 @@ "Maintenance_Tool_ImportCSV_noti": "", "Maintenance_Tool_ImportCSV_noti_text": "", "Maintenance_Tool_ImportCSV_text": "", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "", "Maintenance_Tool_arpscansw_noti": "", "Maintenance_Tool_arpscansw_noti_text": "", diff --git a/front/php/templates/language/ru_ru.json b/front/php/templates/language/ru_ru.json index 45e8fa4f..48287060 100755 --- a/front/php/templates/language/ru_ru.json +++ b/front/php/templates/language/ru_ru.json @@ -372,6 +372,9 @@ "Maintenance_Tool_ImportCSV_noti": "CSV Импорт", "Maintenance_Tool_ImportCSV_noti_text": "Вы уверены, что хотите импортировать файл CSV? Это полностью перезапишет устройства в вашей базе данных.", "Maintenance_Tool_ImportCSV_text": "Прежде чем использовать эту функцию, сделайте резервную копию. Импортируйте файл CSV (значения, разделенные запятыми), содержащий список устройств, включая сетевые отношения между сетевыми узлами и подключенными устройствами. Для этого поместите файл CSV с именем devices.csv в папку /config.", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "Переключить arp-скан (ВКЛ./ВЫКЛ.)", "Maintenance_Tool_arpscansw_noti": "Включить или выключить arp-скан", "Maintenance_Tool_arpscansw_noti_text": "Когда сканирование было выключено, оно остается выключенным до тех пор, пока не будет активировано снова.", @@ -687,4 +690,4 @@ "settings_update_item_warning": "Обновить значение ниже. Будьте осторожны, следуя предыдущему формату. Проверка не выполняется.", "test_event_icon": "fa-vial-circle-check", "test_event_tooltip": "Сначала сохраните изменения, прежде чем проверять настройки." -} +} \ No newline at end of file diff --git a/front/php/templates/language/tr_tr.json b/front/php/templates/language/tr_tr.json index 03a67f43..caafd50c 100755 --- a/front/php/templates/language/tr_tr.json +++ b/front/php/templates/language/tr_tr.json @@ -372,6 +372,9 @@ "Maintenance_Tool_ImportCSV_noti": "", "Maintenance_Tool_ImportCSV_noti_text": "", "Maintenance_Tool_ImportCSV_text": "", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "", "Maintenance_Tool_arpscansw_noti": "", "Maintenance_Tool_arpscansw_noti_text": "", diff --git a/front/php/templates/language/zh_cn.json b/front/php/templates/language/zh_cn.json index 24ba6163..e5ca909b 100755 --- a/front/php/templates/language/zh_cn.json +++ b/front/php/templates/language/zh_cn.json @@ -372,6 +372,9 @@ "Maintenance_Tool_ImportCSV_noti": "", "Maintenance_Tool_ImportCSV_noti_text": "", "Maintenance_Tool_ImportCSV_text": "", + "Maintenance_Tool_ImportPastedCSV": "", + "Maintenance_Tool_ImportPastedCSV_noti_text": "", + "Maintenance_Tool_ImportPastedCSV_text": "", "Maintenance_Tool_arpscansw": "", "Maintenance_Tool_arpscansw_noti": "", "Maintenance_Tool_arpscansw_noti_text": "",