From 64dd4f2c2bbf32f3c039046429b279b433dba722 Mon Sep 17 00:00:00 2001 From: Daniel Barbero Martin Date: Tue, 15 Jun 2021 17:24:03 +0200 Subject: [PATCH] Wip command center, Plugins in meta --- .../extensions/plugin_registration.php | 418 -------------- .../extras/delete_files/delete_files.txt | 2 + pandora_console/godmode/menu.php | 5 +- pandora_console/godmode/servers/plugin.php | 30 - .../godmode/servers/plugin_registration.php | 515 ++++++++++++++++++ pandora_console/include/functions_config.php | 4 - 6 files changed, 521 insertions(+), 453 deletions(-) delete mode 100644 pandora_console/extensions/plugin_registration.php create mode 100644 pandora_console/godmode/servers/plugin_registration.php diff --git a/pandora_console/extensions/plugin_registration.php b/pandora_console/extensions/plugin_registration.php deleted file mode 100644 index 5323fa5abb..0000000000 --- a/pandora_console/extensions/plugin_registration.php +++ /dev/null @@ -1,418 +0,0 @@ - -
'; - echo html_print_image('images/first_task/icono_grande_import.png', true, ['title' => __('Plugin Registration') ]); - echo '
'; - echo '
'; - echo '

'.__('Plugin registration').'

'; - echo '

'.__( - "This extension makes registering server plugins an easier task. - Here you can upload a server plugin in .pspz zipped format. - Please refer to the official documentation on how to obtain and use Server Plugins. -

You can get more plugins in our Public Resource Library " - ).'

'; - // Upload form - echo "
"; - echo ''; - echo "
"; - echo ""; - echo '
'; - echo '
'; - echo ''; - - $zip = null; - $upload = false; - if (isset($_FILES['plugin_upload'])) { - $config['plugin_store'] = $config['attachment_store'].'/plugin'; - - $name_file = $_FILES['plugin_upload']['name']; - - $zip = zip_open($_FILES['plugin_upload']['tmp_name']); - $upload = true; - } - - if ($zip) { - while ($zip_entry = zip_read($zip)) { - if (zip_entry_open($zip, $zip_entry, 'r')) { - if (zip_entry_name($zip_entry) == 'plugin_definition.ini') { - $basepath = $config['attachment_store']; - } else { - $basepath = $config['plugin_store']; - } - - $filename = $basepath.'/'.zip_entry_name($zip_entry); - $fp = fopen($filename, 'w'); - $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); - fwrite($fp, $buf); - fclose($fp); - chmod($filename, 0755); - zip_entry_close($zip_entry); - } - } - - zip_close($zip); - } - - if ($upload) { - // Parse with sections - if (! $ini_array = parse_ini_file($config['attachment_store'].'/plugin_definition.ini', true)) { - echo '

'.__('Cannot load INI file').'

'; - } else { - $version = preg_replace('/.*[.]/', '', $name_file); - - $exec_path = $config['plugin_store'].'/'.$ini_array['plugin_definition']['filename']; - - $file_exec_path = $exec_path; - - if (isset($ini_array['plugin_definition']['execution_command']) - && ($ini_array['plugin_definition']['execution_command'] != '') - ) { - $exec_path = $ini_array['plugin_definition']['execution_command'].' '.$config['plugin_store'].'/'.$ini_array['plugin_definition']['filename']; - } - - if (isset($ini_array['plugin_definition']['execution_postcommand']) - && ($ini_array['plugin_definition']['execution_postcommand'] != '') - ) { - $exec_path = $exec_path.' '.$ini_array['plugin_definition']['execution_postcommand']; - } - - if (!file_exists($file_exec_path)) { - echo '

'.__('Plugin exec not found. Aborting!').'

'; - unlink($config['attachment_store'].'/plugin_definition.ini'); - } else { - // Verify if a plugin with the same name is already registered - $sql0 = "SELECT COUNT(*) - FROM tplugin - WHERE name = '".io_safe_input($ini_array['plugin_definition']['name'])."'"; - $result = db_get_sql($sql0); - - if ($result > 0) { - echo '

'.__('Plugin already registered. Aborting!').'

'; - unlink($config['attachment_store'].'/plugin_definition.ini'); - } else { - $values = [ - 'name' => io_safe_input($ini_array['plugin_definition']['name']), - 'description' => io_safe_input($ini_array['plugin_definition']['description']), - 'max_timeout' => $ini_array['plugin_definition']['timeout'], - 'execute' => io_safe_input($exec_path), - 'net_dst_opt' => $ini_array['plugin_definition']['ip_opt'], - 'net_port_opt' => $ini_array['plugin_definition']['port_opt'], - 'user_opt' => $ini_array['plugin_definition']['user_opt'], - 'pass_opt' => $ini_array['plugin_definition']['pass_opt'], - 'parameters' => $ini_array['plugin_definition']['parameters'], - 'plugin_type' => $ini_array['plugin_definition']['plugin_type'], - ]; - - switch ($version) { - case 'pspz': - // Fixed the static parameters - // for - // the dinamic parameters of pandoras 5 - $total_macros = 0; - $macros = []; - - if (!isset($values['parameters'])) { - $values['parameters'] = ''; - } - - if ($values['net_dst_opt'] != '') { - $total_macros++; - - $macro = []; - $macro['macro'] = '_field'.$total_macros.'_'; - $macro['desc'] = 'Target IP from net'; - $macro['help'] = ''; - $macro['value'] = ''; - - $values['parameters'] .= $values['net_dst_opt'].' _field'.$total_macros.'_ '; - - $macros[(string) $total_macros] = $macro; - } - - if ($values['ip_opt'] != '') { - $total_macros++; - - $macro = []; - $macro['macro'] = '_field'.$total_macros.'_'; - $macro['desc'] = 'Target IP'; - $macro['help'] = ''; - $macro['value'] = ''; - - $values['parameters'] .= $values['ip_opt'].' _field'.$total_macros.'_ '; - - $macros[(string) $total_macros] = $macro; - } - - if ($values['net_port_opt'] != '') { - $total_macros++; - - $macro = []; - $macro['macro'] = '_field'.$total_macros.'_'; - $macro['desc'] = 'Port from net'; - $macro['help'] = ''; - $macro['value'] = ''; - - $values['parameters'] .= $values['net_port_opt'].' _field'.$total_macros.'_ '; - - $macros[(string) $total_macros] = $macro; - } - - if ($values['port_opt'] != '') { - $total_macros++; - - $macro = []; - $macro['macro'] = '_field'.$total_macros.'_'; - $macro['desc'] = 'Port'; - $macro['help'] = ''; - $macro['value'] = ''; - - $values['parameters'] .= $values['port_opt'].' _field'.$total_macros.'_ '; - - $macros[(string) $total_macros] = $macro; - } - - if ($values['user_opt'] != '') { - $total_macros++; - - $macro = []; - $macro['macro'] = '_field'.$total_macros.'_'; - $macro['desc'] = 'Username'; - $macro['help'] = ''; - $macro['value'] = ''; - - $values['parameters'] .= $values['user_opt'].' _field'.$total_macros.'_ '; - - $macros[(string) $total_macros] = $macro; - } - - if ($values['pass_opt'] != '') { - $total_macros++; - - $macro = []; - $macro['macro'] = '_field'.$total_macros.'_'; - $macro['desc'] = 'Password'; - $macro['help'] = ''; - $macro['value'] = ''; - - $values['parameters'] .= $values['pass_opt'].' _field'.$total_macros.'_ '; - - $macros[(string) $total_macros] = $macro; - } - - // A last parameter is defined always to - // add the old "Plug-in parameters" in the - // side of the module - $total_macros++; - - $macro = []; - $macro['macro'] = '_field'.$total_macros.'_'; - $macro['desc'] = 'Plug-in Parameters'; - $macro['help'] = ''; - $macro['value'] = ''; - - $values['parameters'] .= ' _field'.$total_macros.'_'; - - $macros[(string) $total_macros] = $macro; - - break; - - case 'pspz2': - // Fill the macros field. - $total_macros = $ini_array['plugin_definition']['total_macros_provided']; - - $macros = []; - for ($it_macros = 1; $it_macros <= $total_macros; $it_macros++) { - $label = 'macro_'.$it_macros; - - $macro = []; - - $macro['macro'] = '_field'.$it_macros.'_'; - $macro['hide'] = $ini_array[$label]['hide']; - $macro['desc'] = io_safe_input( - $ini_array[$label]['description'] - ); - $macro['help'] = io_safe_input( - $ini_array[$label]['help'] - ); - $macro['value'] = io_safe_input( - $ini_array[$label]['value'] - ); - - $macros[(string) $it_macros] = $macro; - } - break; - } - - if (!empty($macros)) { - $values['macros'] = json_encode($macros); - } - - $create_id = db_process_sql_insert('tplugin', $values); - - if (empty($create_id)) { - ui_print_error_message( - __('Plug-in Remote Registered unsuccessfull') - ); - ui_print_info_message( - __('Please check the syntax of file "plugin_definition.ini"') - ); - } else { - for ($ax = 1; $ax <= $ini_array['plugin_definition']['total_modules_provided']; $ax++) { - $label = 'module'.$ax; - - $plugin_user = ''; - if (isset($ini_array[$label]['plugin_user'])) { - $plugin_user = $ini_array[$label]['plugin_user']; - } - - $plugin_pass = ''; - if (isset($ini_array[$label]['plugin_pass'])) { - $plugin_pass = $ini_array[$label]['plugin_pass']; - } - - $plugin_parameter = ''; - if (isset($ini_array[$label]['plugin_parameter'])) { - $plugin_parameter = $ini_array[$label]['plugin_parameter']; - } - - $unit = ''; - if (isset($ini_array[$label]['unit'])) { - $unit = $ini_array[$label]['unit']; - } - - $values = [ - 'name' => io_safe_input($ini_array[$label]['name']), - 'description' => io_safe_input($ini_array[$label]['description']), - 'id_group' => $ini_array[$label]['id_group'], - 'type' => $ini_array[$label]['type'], - 'max' => isset($ini_array[$label]['max']) ? $ini_array[$label]['max'] : '', - 'min' => isset($ini_array[$label]['min']) ? $ini_array[$label]['min'] : '', - 'module_interval' => isset($ini_array[$label]['module_interval']) ? $ini_array[$label]['module_interval'] : '', - 'id_module_group' => $ini_array[$label]['id_module_group'], - 'id_modulo' => $ini_array[$label]['id_modulo'], - 'plugin_user' => io_safe_input($plugin_user), - 'plugin_pass' => io_safe_input($plugin_pass), - 'plugin_parameter' => io_safe_input($plugin_parameter), - 'unit' => io_safe_input($unit), - 'max_timeout' => isset($ini_array[$label]['max_timeout']) ? $ini_array[$label]['max_timeout'] : '', - 'history_data' => isset($ini_array[$label]['history_data']) ? $ini_array[$label]['history_data'] : '', - 'dynamic_interval' => isset($ini_array[$label]['dynamic_interval']) ? $ini_array[$label]['dynamic_interval'] : '', - 'dynamic_min' => isset($ini_array[$label]['dynamic_min']) ? $ini_array[$label]['dynamic_min'] : '', - 'dynamic_max' => isset($ini_array[$label]['dynamic_max']) ? $ini_array[$label]['dynamic_max'] : '', - 'dynamic_two_tailed' => isset($ini_array[$label]['dynamic_two_tailed']) ? $ini_array[$label]['dynamic_two_tailed'] : '', - 'min_warning' => isset($ini_array[$label]['min_warning']) ? $ini_array[$label]['min_warning'] : '', - 'max_warning' => isset($ini_array[$label]['max_warning']) ? $ini_array[$label]['max_warning'] : '', - 'str_warning' => isset($ini_array[$label]['str_warning']) ? $ini_array[$label]['str_warning'] : '', - 'min_critical' => isset($ini_array[$label]['min_critical']) ? $ini_array[$label]['min_critical'] : '', - 'max_critical' => isset($ini_array[$label]['max_critical']) ? $ini_array[$label]['max_critical'] : '', - 'str_critical' => isset($ini_array[$label]['str_critical']) ? $ini_array[$label]['str_critical'] : '', - 'min_ff_event' => isset($ini_array[$label]['min_ff_event']) ? $ini_array[$label]['min_ff_event'] : '', - 'tcp_port' => isset($ini_array[$label]['tcp_port']) ? $ini_array[$label]['tcp_port'] : '', - 'id_plugin' => $create_id, - ]; - - $macros_component = $macros; - - switch ($version) { - case 'pspz': - // Fixed the static parameters - // for - // the dinamic parameters of pandoras 5 - foreach ($macros_component as $key => $macro) { - if ($macro['desc'] == 'Target IP from net') { - if (!empty($values['ip_target'])) { - $macros_component[$key]['value'] = io_safe_input($values['ip_target']); - } - } - - if ($macro['desc'] == 'Target IP') { - if (!empty($values['ip_target'])) { - $macros_component[$key]['value'] = io_safe_input($values['ip_target']); - } - } else if ($macro['desc'] == 'Port from net') { - if (!empty($values['tcp_port'])) { - $macros_component[$key]['value'] = io_safe_input($values['tcp_port']); - } - } else if ($macro['desc'] == 'Port') { - if (!empty($values['tcp_port'])) { - $macros_component[$key]['value'] = io_safe_input($values['tcp_port']); - } - } else if ($macro['desc'] == 'Username') { - if (!empty($values['plugin_user'])) { - $macros_component[$key]['value'] = io_safe_input($values['plugin_user']); - } - } else if ($macro['desc'] == 'Password') { - if (!empty($values['plugin_pass'])) { - $macros_component[$key]['value'] = io_safe_input($values['plugin_pass']); - } - } else if ($macro['desc'] == 'Plug-in Parameters') { - if (!empty($values['plugin_parameter'])) { - $macros_component[$key]['value'] = io_safe_input($values['plugin_parameter']); - } - } - } - break; - - case 'pspz2': - if ($total_macros > 0) { - for ($it_macros = 1; $it_macros <= $total_macros; $it_macros++) { - $macro = 'macro_'.$it_macros.'_value'; - - // Set the value or use the default - if (isset($ini_array[$label][$macro])) { - $macros_component[(string) $it_macros]['value'] = io_safe_input($ini_array[$label][$macro]); - } - } - } - break; - } - - if (!empty($macros_component)) { - $values['macros'] = json_encode($macros_component); - } - - db_process_sql_insert('tnetwork_component', $values); - - echo '

'.__('Module plugin registered').' : '.$ini_array[$label]['name'].'

'; - } - - echo '

'.__('Plugin').' '.$ini_array['plugin_definition']['name'].' '.__('Registered successfully').'

'; - } - - unlink($config['attachment_store'].'/plugin_definition.ini'); - } - } - } - } -} - - -extensions_add_godmode_menu_option(__('Register plugin'), 'PM', 'gservers', null, 'v1r1'); -extensions_add_godmode_function('pluginreg_extension_main'); diff --git a/pandora_console/extras/delete_files/delete_files.txt b/pandora_console/extras/delete_files/delete_files.txt index fd8b2eb658..466cb2b571 100644 --- a/pandora_console/extras/delete_files/delete_files.txt +++ b/pandora_console/extras/delete_files/delete_files.txt @@ -98,3 +98,5 @@ godmode/update_manager/update_manager.online.php include/javascript/update_manager.js enterprise/include/functions_update_manager.php include/ajax/rolling_release.ajax.php +extensions/plugin_registration.php + diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 57d7ff3202..f8996328b3 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -282,13 +282,16 @@ if (check_acl($config['id_user'], 0, 'AW') || check_acl($config['id_user'], 0, ' $sub['godmode/servers/modificar_server']['id'] = 'Manage servers'; } - // This subtabs are only for Pandora Admin + // This subtabs are only for Pandora Admin. if (check_acl($config['id_user'], 0, 'PM')) { enterprise_hook('ha_cluster'); $sub['godmode/servers/plugin']['text'] = __('Plugins'); $sub['godmode/servers/plugin']['id'] = 'Plugins'; + $sub['godmode/servers/plugin_registration']['text'] = __('Register Plugin'); + $sub['godmode/servers/plugin_registration']['id'] = 'register_plugin'; + enterprise_hook('export_target_submenu'); enterprise_hook('manage_satellite_submenu'); diff --git a/pandora_console/godmode/servers/plugin.php b/pandora_console/godmode/servers/plugin.php index 384a96efb5..61e99fa9d4 100644 --- a/pandora_console/godmode/servers/plugin.php +++ b/pandora_console/godmode/servers/plugin.php @@ -619,36 +619,6 @@ if (($create != '') || ($view != '')) { __('To manage plugin you must activate centralized management') ); } - - if (!$config['metaconsole_deploy_plugin_server'] && $management_allowed) { - $deploy_plugin_server = true; - - echo ''; - ?> - - '; +$output .= '
'; +$output .= html_print_image( + 'images/first_task/icono_grande_import.png', + true, + ['title' => __('Plugin Registration') ] +); +$output .= '
'; +$output .= '
'; +$output .= '

'.__('Plugin registration').'

'; +$output .= '

'; +$output .= __($str); +$output .= '

'; +$output .= __('You can get more plugins in our'); +$output .= ''; +$output .= ' '.__('Public Resource Library'); +$output .= ''; +$output .= '

'; + +// Upload form. +$output .= "
"; +$output .= ''; +$output .= "
"; +$output .= ""; +$output .= '
'; +$output .= '
'; +$output .= ''; + +echo $output; + +$zip = null; +$upload = false; +if (isset($_FILES['plugin_upload']) === true) { + $config['plugin_store'] = $config['attachment_store'].'/plugin'; + + $name_file = $_FILES['plugin_upload']['name']; + + $zip = zip_open($_FILES['plugin_upload']['tmp_name']); + $upload = true; +} + +if (isset($zip) === true && empty($zip) === false) { + while ($zip_entry = zip_read($zip)) { + if (zip_entry_open($zip, $zip_entry, 'r')) { + if (zip_entry_name($zip_entry) == 'plugin_definition.ini') { + $basepath = $config['attachment_store']; + } else { + $basepath = $config['plugin_store']; + } + + $filename = $basepath.'/'.zip_entry_name($zip_entry); + $fp = fopen($filename, 'w'); + $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); + fwrite($fp, $buf); + fclose($fp); + chmod($filename, 0755); + zip_entry_close($zip_entry); + } + } + + zip_close($zip); +} + +if ($upload === true) { + $ini_array = parse_ini_file($config['attachment_store'].'/plugin_definition.ini', true); + // Parse with sections. + if ($ini_array === false) { + ui_print_error_message(__('Cannot load INI file')); + } else { + $version = preg_replace('/.*[.]/', '', $name_file); + + $exec_path = $config['plugin_store'].'/'.$ini_array['plugin_definition']['filename']; + + $file_exec_path = $exec_path; + + if (isset($ini_array['plugin_definition']['execution_command']) === true + && empty($ini_array['plugin_definition']['execution_command']) === false + ) { + $exec_path = $ini_array['plugin_definition']['execution_command']; + $exec_path .= ' '.$config['plugin_store'].'/'; + $exec_path .= $ini_array['plugin_definition']['filename']; + } + + if (isset($ini_array['plugin_definition']['execution_postcommand']) === true + && empty($ini_array['plugin_definition']['execution_postcommand']) === false + ) { + $exec_path .= ' '.$ini_array['plugin_definition']['execution_postcommand']; + } + + if (file_exists($file_exec_path) === false) { + ui_print_error_message(__('Plugin exec not found. Aborting!')); + unlink($config['attachment_store'].'/plugin_definition.ini'); + } else { + // Verify if a plugin with the same name is already registered. + $sql = sprintf( + 'SELECT COUNT(*) + FROM tplugin + WHERE name = "%s"', + io_safe_input($ini_array['plugin_definition']['name']) + ); + $result = db_get_sql($sql); + + if ($result > 0) { + ui_print_error_message(__('Plugin already registered. Aborting!')); + unlink($config['attachment_store'].'/plugin_definition.ini'); + } else { + $values = [ + 'name' => io_safe_input($ini_array['plugin_definition']['name']), + 'description' => io_safe_input($ini_array['plugin_definition']['description']), + 'max_timeout' => $ini_array['plugin_definition']['timeout'], + 'execute' => io_safe_input($exec_path), + 'net_dst_opt' => $ini_array['plugin_definition']['ip_opt'], + 'net_port_opt' => $ini_array['plugin_definition']['port_opt'], + 'user_opt' => $ini_array['plugin_definition']['user_opt'], + 'pass_opt' => $ini_array['plugin_definition']['pass_opt'], + 'parameters' => $ini_array['plugin_definition']['parameters'], + 'plugin_type' => $ini_array['plugin_definition']['plugin_type'], + ]; + + switch ($version) { + case 'pspz': + // Fixed the static parameters + // for + // the dinamic parameters of pandoras 5. + $total_macros = 0; + $macros = []; + + if (isset($values['parameters']) === false) { + $values['parameters'] = ''; + } + + if (empty($values['net_dst_opt']) === false) { + $total_macros++; + + $macro = []; + $macro['macro'] = '_field'.$total_macros.'_'; + $macro['desc'] = 'Target IP from net'; + $macro['help'] = ''; + $macro['value'] = ''; + + $values['parameters'] .= $values['net_dst_opt'].' _field'.$total_macros.'_ '; + + $macros[(string) $total_macros] = $macro; + } + + if (empty($values['ip_opt']) === false) { + $total_macros++; + + $macro = []; + $macro['macro'] = '_field'.$total_macros.'_'; + $macro['desc'] = 'Target IP'; + $macro['help'] = ''; + $macro['value'] = ''; + + $values['parameters'] .= $values['ip_opt'].' _field'.$total_macros.'_ '; + + $macros[(string) $total_macros] = $macro; + } + + if (empty($values['net_port_opt']) === false) { + $total_macros++; + + $macro = []; + $macro['macro'] = '_field'.$total_macros.'_'; + $macro['desc'] = 'Port from net'; + $macro['help'] = ''; + $macro['value'] = ''; + + $values['parameters'] .= $values['net_port_opt'].' _field'.$total_macros.'_ '; + + $macros[(string) $total_macros] = $macro; + } + + if (empty($values['port_opt']) === false) { + $total_macros++; + + $macro = []; + $macro['macro'] = '_field'.$total_macros.'_'; + $macro['desc'] = 'Port'; + $macro['help'] = ''; + $macro['value'] = ''; + + $values['parameters'] .= $values['port_opt'].' _field'.$total_macros.'_ '; + + $macros[(string) $total_macros] = $macro; + } + + if (empty($values['user_opt']) === false) { + $total_macros++; + + $macro = []; + $macro['macro'] = '_field'.$total_macros.'_'; + $macro['desc'] = 'Username'; + $macro['help'] = ''; + $macro['value'] = ''; + + $values['parameters'] .= $values['user_opt'].' _field'.$total_macros.'_ '; + + $macros[(string) $total_macros] = $macro; + } + + if (empty($values['pass_opt']) === false) { + $total_macros++; + + $macro = []; + $macro['macro'] = '_field'.$total_macros.'_'; + $macro['desc'] = 'Password'; + $macro['help'] = ''; + $macro['value'] = ''; + + $values['parameters'] .= $values['pass_opt'].' _field'.$total_macros.'_ '; + + $macros[(string) $total_macros] = $macro; + } + + // A last parameter is defined always to + // add the old "Plug-in parameters" in the + // side of the module. + $total_macros++; + + $macro = []; + $macro['macro'] = '_field'.$total_macros.'_'; + $macro['desc'] = 'Plug-in Parameters'; + $macro['help'] = ''; + $macro['value'] = ''; + + $values['parameters'] .= ' _field'.$total_macros.'_'; + + $macros[(string) $total_macros] = $macro; + break; + + case 'pspz2': + // Fill the macros field. + $total_macros = $ini_array['plugin_definition']['total_macros_provided']; + + $macros = []; + for ($it_macros = 1; $it_macros <= $total_macros; $it_macros++) { + $label = 'macro_'.$it_macros; + + $macro = []; + + $macro['macro'] = '_field'.$it_macros.'_'; + $macro['hide'] = $ini_array[$label]['hide']; + $macro['desc'] = io_safe_input( + $ini_array[$label]['description'] + ); + $macro['help'] = io_safe_input( + $ini_array[$label]['help'] + ); + $macro['value'] = io_safe_input( + $ini_array[$label]['value'] + ); + + $macros[(string) $it_macros] = $macro; + } + break; + + default: + // Not possible. + break; + } + + if (empty($macros) === false) { + $values['macros'] = json_encode($macros); + } + + $create_id = db_process_sql_insert('tplugin', $values); + + if (empty($create_id) === true) { + ui_print_error_message( + __('Plug-in Remote Registered unsuccessfull') + ); + ui_print_info_message( + __('Please check the syntax of file "plugin_definition.ini"') + ); + } else { + for ($ax = 1; $ax <= $ini_array['plugin_definition']['total_modules_provided']; $ax++) { + $label = 'module'.$ax; + + $plugin_user = ''; + if (isset($ini_array[$label]['plugin_user']) === true) { + $plugin_user = $ini_array[$label]['plugin_user']; + } + + $plugin_pass = ''; + if (isset($ini_array[$label]['plugin_pass']) === true) { + $plugin_pass = $ini_array[$label]['plugin_pass']; + } + + $plugin_parameter = ''; + if (isset($ini_array[$label]['plugin_parameter']) === true) { + $plugin_parameter = $ini_array[$label]['plugin_parameter']; + } + + $unit = ''; + if (isset($ini_array[$label]['unit']) === true) { + $unit = $ini_array[$label]['unit']; + } + + $values = [ + 'name' => io_safe_input($ini_array[$label]['name']), + 'description' => io_safe_input($ini_array[$label]['description']), + 'id_group' => $ini_array[$label]['id_group'], + 'type' => $ini_array[$label]['type'], + 'max' => ($ini_array[$label]['max'] ?? ''), + 'min' => ($ini_array[$label]['min'] ?? ''), + 'module_interval' => ($ini_array[$label]['module_interval'] ?? ''), + 'id_module_group' => $ini_array[$label]['id_module_group'], + 'id_modulo' => $ini_array[$label]['id_modulo'], + 'plugin_user' => io_safe_input($plugin_user), + 'plugin_pass' => io_safe_input($plugin_pass), + 'plugin_parameter' => io_safe_input($plugin_parameter), + 'unit' => io_safe_input($unit), + 'max_timeout' => ($ini_array[$label]['max_timeout'] ?? ''), + 'history_data' => ($ini_array[$label]['history_data'] ?? ''), + 'dynamic_interval' => ($ini_array[$label]['dynamic_interval'] ?? ''), + 'dynamic_min' => ($ini_array[$label]['dynamic_min'] ?? ''), + 'dynamic_max' => ($ini_array[$label]['dynamic_max'] ?? ''), + 'dynamic_two_tailed' => ($ini_array[$label]['dynamic_two_tailed'] ?? ''), + 'min_warning' => ($ini_array[$label]['min_warning'] ?? ''), + 'max_warning' => ($ini_array[$label]['max_warning'] ?? ''), + 'str_warning' => ($ini_array[$label]['str_warning'] ?? ''), + 'min_critical' => ($ini_array[$label]['min_critical'] ?? ''), + 'max_critical' => ($ini_array[$label]['max_critical'] ?? ''), + 'str_critical' => ($ini_array[$label]['str_critical'] ?? ''), + 'min_ff_event' => ($ini_array[$label]['min_ff_event'] ?? ''), + 'tcp_port' => ($ini_array[$label]['tcp_port'] ?? ''), + 'id_plugin' => $create_id, + ]; + + $macros_component = $macros; + + switch ($version) { + case 'pspz': + // Fixed the static parameters + // for + // the dinamic parameters of pandoras 5. + foreach ($macros_component as $key => $macro) { + if ($macro['desc'] === 'Target IP from net') { + if (empty($values['ip_target']) === false) { + $macros_component[$key]['value'] = io_safe_input( + $values['ip_target'] + ); + } + } + + if ($macro['desc'] === 'Target IP') { + if (empty($values['ip_target']) === false) { + $macros_component[$key]['value'] = io_safe_input( + $values['ip_target'] + ); + } + } else if ($macro['desc'] === 'Port from net') { + if (empty($values['tcp_port']) === false) { + $macros_component[$key]['value'] = io_safe_input( + $values['tcp_port'] + ); + } + } else if ($macro['desc'] === 'Port') { + if (empty($values['tcp_port']) === false) { + $macros_component[$key]['value'] = io_safe_input( + $values['tcp_port'] + ); + } + } else if ($macro['desc'] === 'Username') { + if (empty($values['plugin_user']) === false) { + $macros_component[$key]['value'] = io_safe_input( + $values['plugin_user'] + ); + } + } else if ($macro['desc'] === 'Password') { + if (empty($values['plugin_pass']) === false) { + $macros_component[$key]['value'] = io_safe_input( + $values['plugin_pass'] + ); + } + } else if ($macro['desc'] === 'Plug-in Parameters') { + if (empty($values['plugin_parameter']) === false) { + $macros_component[$key]['value'] = io_safe_input( + $values['plugin_parameter'] + ); + } + } + } + break; + + case 'pspz2': + if ($total_macros > 0) { + for ($it_macros = 1; $it_macros <= $total_macros; $it_macros++) { + $macro = 'macro_'.$it_macros.'_value'; + + // Set the value or use the default. + if (isset($ini_array[$label][$macro]) === true) { + $macros_component[(string) $it_macros]['value'] = io_safe_input( + $ini_array[$label][$macro] + ); + } + } + } + break; + + default: + // Not possible. + break; + } + + if (empty($macros_component) === false) { + $values['macros'] = json_encode($macros_component); + } + + db_process_sql_insert('tnetwork_component', $values); + + ui_print_success_message( + __('Module plugin registered').' : '.$ini_array[$label]['name'] + ); + } + + ui_print_success_message( + __('Plugin').' '.$ini_array['plugin_definition']['name'].' '.__('Registered successfully') + ); + } + + unlink($config['attachment_store'].'/plugin_definition.ini'); + } + } + } +} + +if (is_metaconsole() === true) { + enterprise_hook('close_meta_frame'); +} diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index 52f222573d..6544b42b79 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -3255,10 +3255,6 @@ function config_process_config() if (!isset($config['metaconsole_deploy_inventory_plugin'])) { config_update_value('metaconsole_deploy_inventory_plugin', 0); } - - if (!isset($config['metaconsole_deploy_plugin_server'])) { - config_update_value('metaconsole_deploy_plugin_server', 0); - } } // Integria.