From 5b3ce095150e4fc7f899ee6e5b885de994aa1d35 Mon Sep 17 00:00:00 2001 From: fbsanchez Date: Tue, 26 Feb 2019 17:41:42 +0100 Subject: [PATCH 1/6] Comment updates in wizard class Former-commit-id: 0b820729a631d906fe4816ba74f84f700b500c01 --- .../godmode/wizards/Wizard.main.php | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/pandora_console/godmode/wizards/Wizard.main.php b/pandora_console/godmode/wizards/Wizard.main.php index c584e6a9b7..708caa4c52 100644 --- a/pandora_console/godmode/wizards/Wizard.main.php +++ b/pandora_console/godmode/wizards/Wizard.main.php @@ -1,11 +1,39 @@ Date: Tue, 26 Feb 2019 17:42:12 +0100 Subject: [PATCH 2/6] Comment updates in wizard class Former-commit-id: 9fbb1d0c6499dd1ad71c472970b3993193b581da --- pandora_console/godmode/wizards/Wizard.main.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pandora_console/godmode/wizards/Wizard.main.php b/pandora_console/godmode/wizards/Wizard.main.php index 708caa4c52..c763e0ff29 100644 --- a/pandora_console/godmode/wizards/Wizard.main.php +++ b/pandora_console/godmode/wizards/Wizard.main.php @@ -526,6 +526,8 @@ class Wizard /** * Prints a go back button redirecting to main page. * + * @param string $url Optional target url. + * * @return void */ public function printGoBackButton($url=null) From 0e7c498e1abd6a628f12ea7cf1782729ffb11960 Mon Sep 17 00:00:00 2001 From: fbsanchez Date: Tue, 26 Feb 2019 17:53:58 +0100 Subject: [PATCH 3/6] Comment updates Former-commit-id: a711916af981c065d26def1943fc526d936de5d3 --- pandora_console/include/ajax/events.php | 1 - 1 file changed, 1 deletion(-) diff --git a/pandora_console/include/ajax/events.php b/pandora_console/include/ajax/events.php index af05a8c07f..9d327bb540 100644 --- a/pandora_console/include/ajax/events.php +++ b/pandora_console/include/ajax/events.php @@ -580,7 +580,6 @@ if ($get_extended_event) { dataType : "html", success: function (data) { $("#related_data").html(data); - console.log("vamos puta"); } }); });'; From a8874f9b1b0922f8bc82b713833aa924b143d42b Mon Sep 17 00:00:00 2001 From: fbsanchez Date: Tue, 26 Feb 2019 20:00:41 +0100 Subject: [PATCH 4/6] Minor fixes Former-commit-id: c3abb9964c61f0535ab59644f6eb1d0a8328212a --- .../wizards/DiscoveryTaskList.class.php | 888 +++++------------- .../godmode/wizards/HostDevices.class.php | 315 +------ 2 files changed, 246 insertions(+), 957 deletions(-) diff --git a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php index 9f7c416854..0daa3d3cd7 100644 --- a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php +++ b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php @@ -30,6 +30,7 @@ require_once __DIR__.'/Wizard.main.php'; require_once $config['homedir'].'/include/functions_users.php'; require_once $config['homedir'].'/include/functions_reports.php'; require_once $config['homedir'].'/include/functions_cron.php'; +enterprise_include('include/functions_tasklist.php'); /** * Defined as wizard to guide user to explore running tasks. @@ -72,6 +73,9 @@ class DiscoveryTaskList extends Wizard /** * Implements run method. * + * @param string $message Redirected input. + * @param boolean $status Redirected input. + * * @return mixed Returns null if wizard is ongoing. Result if done. */ public function run($message='', $status=null) @@ -115,45 +119,41 @@ class DiscoveryTaskList extends Wizard if (enterprise_installed()) { // This check only applies to enterprise users. - // Check if DiscoveryCronTasks is running. Warn user if not. - if ($config['cron_last_run'] == 0 - || (get_system_time() - $config['cron_last_run']) > 3600 - ) { - $message_conf_cron = __('DiscoveryConsoleTasks is not running properly').'. '; - if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') { - $message_conf_cron .= __('Discovery relies on a proper setup of cron, the time-based scheduling service'); - $message_conf_cron .= '. '.__('Please, add the following line to your crontab file:'); - $message_conf_cron .= '
* * * * * <user> wget -q -O - --no-check-certificate ';
-                    $message_conf_cron .= str_replace(
-                        ENTERPRISE_DIR.'/meta/',
-                        '',
-                        ui_get_full_url(false)
-                    );
-                    $message_conf_cron .= ENTERPRISE_DIR.'/'.EXTENSIONS_DIR;
-                    $message_conf_cron .= '/cron/cron.php >> ';
-                    $message_conf_cron .= $config['homedir'].'/pandora_console.log
'; - } + enterprise_hook('tasklist_checkrunning'); - if (isset($config['cron_last_run']) === true - && $config['cron_last_run'] > 0 - ) { - $message_conf_cron .= '

'.__('Last execution').': '; - $message_conf_cron .= date('Y/m/d H:i:s', $config['cron_last_run']).'

'; - $message_conf_cron .= '

'; - $message_conf_cron .= __('Please check process is no locked.').'

'; - } - - ui_print_warning_message($message_conf_cron, '', false); - } + $ret = $this->showListConsoleTask(); + } else { + $ret = false; } - $ret = $this->showListConsoleTask(); $ret2 = $this->showList(); if ($ret === false && $ret2 === false) { include_once $config['homedir'].'/general/firts_task/recon_view.php'; + } else { + $form = [ + 'form' => [ + 'method' => 'POST', + 'action' => ui_get_full_url( + 'index.php?sec=gservers&sec2=godmode/servers/discovery' + ), + ], + 'inputs' => [ + [ + 'arguments' => [ + 'name' => 'submit', + 'label' => __('Go back'), + 'type' => 'submit', + 'attributes' => 'class="sub cancel"', + 'return' => true, + ], + ], + ], + ]; } + $this->printForm($form); + return $ret; } @@ -237,7 +237,7 @@ class DiscoveryTaskList extends Wizard $id_console_task = (int) get_parameter('id_console_task'); if ($id_console_task !== null) { - cron_task_run($id_console_task, true); + enterprise_include('cron_task_run', $id_console_task, true); // Trick to avoid double execution. header('Location: '.$this->url); } @@ -313,255 +313,229 @@ class DiscoveryTaskList extends Wizard ui_print_error_message(__('Discovery Server is disabled')); return false; } else { - $recon_task = db_get_all_rows_sql('SELECT * FROM trecon_task'); - if ($recon_task === false) { - return false; - } else { - include_once $config['homedir'].'/include/functions_graph.php'; - include_once $config['homedir'].'/include/functions_servers.php'; - include_once $config['homedir'].'/include/functions_network_profiles.php'; + include_once $config['homedir'].'/include/functions_graph.php'; + include_once $config['homedir'].'/include/functions_servers.php'; + include_once $config['homedir'].'/include/functions_network_profiles.php'; - $modules_server = 0; - $total_modules = 0; - $total_modules_data = 0; + $modules_server = 0; + $total_modules = 0; + $total_modules_data = 0; - // -------------------------------- - // FORCE A RECON TASK - // -------------------------------- - if (check_acl($config['id_user'], 0, 'PM')) { - if (isset($_GET['force'])) { - $id = (int) get_parameter_get('force', 0); - servers_force_recon_task($id); - header( - 'Location: '.ui_get_full_url( - 'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist' + // -------------------------------- + // FORCE A RECON TASK + // -------------------------------- + if (check_acl($config['id_user'], 0, 'PM')) { + if (isset($_GET['force'])) { + $id = (int) get_parameter_get('force', 0); + servers_force_recon_task($id); + header( + 'Location: '.ui_get_full_url( + 'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist' + ) + ); + } + } + + foreach ($servers as $serverItem) { + $id_server = $serverItem['id_server']; + $server_name = servers_get_name($id_server); + $recon_tasks = db_get_all_rows_field_filter( + 'trecon_task', + 'id_recon_server', + $id_server + ); + + $user_groups = implode(',', array_keys(users_get_groups())); + $defined_tasks = db_get_all_rows_filter( + 'tuser_task_scheduled', + 'id_grupo IN ('.$user_groups.')' + ); + + if (isset($tasks_console) === true + && is_array($tasks_console) === true + ) { + foreach ($tasks_console as $key => $value) { + $value['parameters'] = unserialize( + $value['parameters'] + ); + + $value['type'] = 'Cron'; + array_push($recon_tasks, $value); + } + } + + // Show network tasks for Recon Server. + if ($recon_tasks === false) { + $recon_tasks = []; + } + + $table = new StdClass(); + $table->cellpadding = 4; + $table->cellspacing = 4; + $table->width = '100%'; + $table->class = 'databox data'; + $table->head = []; + $table->data = []; + $table->align = []; + $table->headstyle = []; + for ($i = 0; $i < 9; $i++) { + $table->headstyle[$i] = 'text-align: left;'; + } + + $table->head[0] = __('Force'); + $table->align[0] = 'left'; + + $table->head[1] = __('Task name'); + $table->align[1] = 'left'; + + $table->head[2] = __('Interval'); + $table->align[2] = 'left'; + + $table->head[3] = __('Network'); + $table->align[3] = 'left'; + + $table->head[4] = __('Status'); + $table->align[4] = 'left'; + + $table->head[5] = __('Task type'); + $table->align[5] = 'left'; + + $table->head[6] = __('Progress'); + $table->align[6] = 'left'; + + $table->head[7] = __('Updated at'); + $table->align[7] = 'left'; + + $table->head[8] = __('Operations'); + $table->align[8] = 'left'; + + foreach ($recon_tasks as $task) { + $data = []; + + if ($task['disabled'] == 0) { + $data[0] = ''; + $data[0] .= html_print_image('images/target.png', true, ['title' => __('Force')]); + $data[0] .= ''; + } else if ($task['disabled'] == 2) { + $data[0] = ui_print_help_tip( + __('This task has not been completely defined, please edit it'), + true + ); + } else { + $data[0] = ''; + } + + $data[1] = ''.$task['name'].''; + + if ($task['interval_sweep'] > 0) { + $data[2] = human_time_description_raw( + $task['interval_sweep'] + ); + } else { + $data[2] = __('Manual'); + } + + if ($task['id_recon_script'] == 0) { + $data[3] = $task['subnet']; + } else { + $data[3] = '-'; + } + + if ($task['status'] <= 0) { + $data[4] = __('Done'); + } else { + $data[4] = __('Pending'); + } + + if ($task['id_recon_script'] == 0) { + // Discovery NetScan. + $data[5] = html_print_image( + 'images/network.png', + true, + ['title' => __('Discovery NetScan')] + ).'  '; + $data[5] .= network_profiles_get_name( + $task['id_network_profile'] + ); + } else { + // APP recon task. + $data[5] = html_print_image( + 'images/plugin.png', + true + ).'  '; + $data[5] .= db_get_sql( + sprintf( + 'SELECT name FROM trecon_script WHERE id_recon_script = %d', + $task['id_recon_script'] ) ); } - } - foreach ($servers as $serverItem) { - $id_server = $serverItem['id_server']; - $server_name = servers_get_name($id_server); - $recon_tasks = db_get_all_rows_field_filter( - 'trecon_task', - 'id_recon_server', - $id_server - ); - - $user_groups = implode(',', array_keys(users_get_groups())); - $defined_tasks = db_get_all_rows_filter( - 'tuser_task_scheduled', - 'id_grupo IN ('.$user_groups.')' - ); - - if (isset($tasks_console) === true - && is_array($tasks_console) === true - ) { - foreach ($tasks_console as $key => $value) { - $value['parameters'] = unserialize( - $value['parameters'] - ); - - $value['type'] = 'Cron'; - array_push($recon_tasks, $value); - } - } - - // Show network tasks for Recon Server. - if ($recon_tasks === false) { - $recon_tasks = []; - } - - $table = new StdClass(); - $table->cellpadding = 4; - $table->cellspacing = 4; - $table->width = '100%'; - $table->class = 'databox data'; - $table->head = []; - $table->data = []; - $table->align = []; - $table->headstyle = []; - for ($i = 0; $i < 9; $i++) { - $table->headstyle[$i] = 'text-align: left;'; - } - - $table->head[0] = __('Force'); - $table->align[0] = 'left'; - - $table->head[1] = __('Task name'); - $table->align[1] = 'left'; - - $table->head[2] = __('Interval'); - $table->align[2] = 'left'; - - $table->head[3] = __('Network'); - $table->align[3] = 'left'; - - $table->head[4] = __('Status'); - $table->align[4] = 'left'; - - $table->head[5] = __('Task type'); - $table->align[5] = 'left'; - - $table->head[6] = __('Progress'); - $table->align[6] = 'left'; - - $table->head[7] = __('Updated at'); - $table->align[7] = 'left'; - - $table->head[8] = __('Operations'); - $table->align[8] = 'left'; - - foreach ($recon_tasks as $task) { - $data = []; - - if ($task['disabled'] == 0) { - $data[0] = ''; - $data[0] .= html_print_image('images/target.png', true, ['title' => __('Force')]); - $data[0] .= ''; - } else if ($task['disabled'] == 2) { - $data[0] = ui_print_help_tip( - __('This task has not been completely defined, please edit it'), - true - ); - } else { - $data[0] = ''; - } - - $data[1] = ''.$task['name'].''; - - if ($task['interval_sweep'] > 0) { - $data[2] = human_time_description_raw( - $task['interval_sweep'] - ); - } else { - $data[2] = __('Manual'); - } - - if ($task['id_recon_script'] == 0) { - $data[3] = $task['subnet']; - } else { - $data[3] = '-'; - } - - if ($task['status'] <= 0) { - $data[4] = __('Done'); - } else { - $data[4] = __('Pending'); - } - - if ($task['id_recon_script'] == 0) { - // Discovery NetScan. - $data[5] = html_print_image( - 'images/network.png', - true, - ['title' => __('Discovery NetScan')] - ).'  '; - $data[5] .= network_profiles_get_name( - $task['id_network_profile'] - ); - } else { - // APP recon task. - $data[5] = html_print_image( - 'images/plugin.png', - true - ).'  '; - $data[5] .= db_get_sql( - sprintf( - 'SELECT name FROM trecon_script WHERE id_recon_script = %d', - $task['id_recon_script'] - ) - ); - } - - if ($task['status'] <= 0 || $task['status'] > 100) { - $data[6] = '-'; - } else { - $data[6] = progress_bar( - $task['status'], - 100, - 20, - __('Progress').':'.$task['status'].'%', - 1 - ); - } - - if ($task['utimestamp'] > 0) { - $data[7] = ui_print_timestamp( - $task['utimestamp'], - true - ); - } else { - $data[7] = __('Not executed yet'); - } - - if (check_acl( - $config['id_user'], - $task['id_group'], - 'PM' - ) - ) { - // Check if is a H&D, Cloud or Application. - $data[8] = ''.html_print_image( - 'images/config.png', - true - ).''; - $data[8] .= ''.html_print_image( - 'images/cross.png', - true - ).''; - } else { - $data[8] = ''; - } - - array_push($table->data, $data); - } - - if (empty($table->data)) { - echo '
'.__('Server').' '.$server_name.' '.__('has no recon tasks assigned').'
'; + if ($task['status'] <= 0 || $task['status'] > 100) { + $data[6] = '-'; } else { - echo '

'.__('Server task').'

'; - html_print_table($table); + $data[6] = progress_bar( + $task['status'], + 100, + 20, + __('Progress').':'.$task['status'].'%', + 1 + ); } - unset($table); + if ($task['utimestamp'] > 0) { + $data[7] = ui_print_timestamp( + $task['utimestamp'], + true + ); + } else { + $data[7] = __('Not executed yet'); + } + + if (check_acl( + $config['id_user'], + $task['id_group'], + 'PM' + ) + ) { + // Check if is a H&D, Cloud or Application. + $data[8] = ''.html_print_image( + 'images/config.png', + true + ).''; + $data[8] .= ''.html_print_image( + 'images/cross.png', + true + ).''; + } else { + $data[8] = ''; + } + + array_push($table->data, $data); } + + echo '

'.__('Server tasks').'

'; + if (empty($table->data)) { + echo '
'.__('Server').' '.$server_name.' '.__('has no discovery tasks assigned').'
'; + return false; + } else { + html_print_table($table); + } + + unset($table); } } - $form = [ - 'form' => [ - 'method' => 'POST', - 'action' => ui_get_full_url( - 'index.php?sec=gservers&sec2=godmode/servers/discovery' - ), - ], - 'inputs' => [ - [ - 'arguments' => [ - 'name' => 'submit', - 'label' => __('Go back'), - 'type' => 'submit', - 'attributes' => 'class="sub cancel"', - 'return' => true, - ], - ], - ], - ]; - - $this->printForm($form); - return true; } @@ -573,385 +547,7 @@ class DiscoveryTaskList extends Wizard */ public function showListConsoleTask() { - global $config; - - check_login(); - - if (! check_acl($config['id_user'], 0, 'PM')) { - db_pandora_audit( - 'ACL Violation', - 'Trying to access recon task viewer' - ); - include 'general/noaccess.php'; - return false; - } - - $read_perms = check_acl( - $config['id_user'], - 0, - 'RR' - ); - $write_perms = check_acl( - $config['id_user'], - 0, - 'RW' - ); - $manage_perms = check_acl( - $config['id_user'], - 0, - 'RM' - ); - $manage_pandora = check_acl( - $config['id_user'], - 0, - 'PM' - ); - - $url = 'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist&'; - - $user_groups = implode( - ',', - array_keys(users_get_groups()) - ); - - $defined_tasks = db_get_all_rows_filter( - 'tuser_task_scheduled', - 'id_grupo IN ('.$user_groups.')' - ); - - if (!check_acl($config['id_user'], 0, 'PM')) { - $read_tasks = []; - foreach ($defined_tasks as $task) { - $function_name = db_get_value( - 'function_name', - 'tuser_task', - 'id', - $task['id_user_task'] - ); - - if (($function_name != 'cron_task_execute_custom_script') - && ($function_name != 'cron_task_do_backup') - ) { - $read_tasks[] = $task; - } - } - - $defined_tasks = $read_tasks; - - if (empty($defined_tasks)) { - $defined_tasks = false; - } - } - - if ($defined_tasks !== false) { - echo '

'.__('Console task').'

'; - - $table = new stdClass(); - $table->class = 'databox data'; - $table->width = '100%'; - $table->data = []; - $table->head = []; - $table->head[0] = ''; - $table->head[1] = __('User'); - $table->head[2] = __('Task'); - $table->head[3] = __('Scheduled'); - $table->head[4] = __('Next execution'); - $table->head[5] = __('Last run'); - $table->head[6] = __('Group'); - $table->head[7] = __('Operations'); - $table->align[7] = 'left'; - - foreach ($defined_tasks as $task) { - $data = []; - - $function_name = db_get_value( - 'function_name', - 'tuser_task', - 'id', - $task['id_user_task'] - ); - - switch ($function_name) { - case 'cron_task_generate_report': - if ($write_perms || $manage_pandora) { - $data[0] = ''; - $data[0] .= html_print_image( - 'images/target.png', - true, - ['title' => __('Force run')] - ); - $data[0] .= ''; - } else { - $data[0] = ''; - } - - $data[1] = $task['id_usuario']; - $data[2] = db_get_value( - 'name', - 'tuser_task', - 'id', - $task['id_user_task'] - ); - $args = unserialize($task['args']); - $report = reports_get_report($args[0]); - - // Check ACL in reports_get_report return false. - if ($report === false) { - continue; - } - - $email = $args[1]; - $data[2] .= '
- '.__('Report').": "; - $data[2] .= $report['name'].''; - $data[2] .= '
- '.__('Email').": "; - $data[2] .= ui_print_truncate_text( - $email, - 60, - false - ).''; - break; - - case 'cron_task_generate_report_by_template': - if ($write_perms || $manage_pandora) { - $data[0] = ''; - $data[0] .= html_print_image( - 'images/target.png', - true, - ['title' => __('Force run')] - ); - $data[0] .= ''; - } else { - $data[0] = ''; - } - - $data[1] = $task['id_usuario']; - $data[2] = db_get_value( - 'name', - 'tuser_task', - 'id', - $task['id_user_task'] - ); - - $args = unserialize($task['args']); - - $filter = []; - $filter['id_report'] = $args[0]; - $template = db_get_row_filter( - 'treport_template', - $filter, - false - ); - - // Check ACL in reports_get_report return false. - if ($template === false) { - continue; - } - - $agents_id = $args[1]; - $id_group = $args[2]; - $report_per_agent = $args[0]; - $report_name = $args[3]; - $email = $args[4]; - $data[2] .= '
- '.__('Template').": ".$template['name'].''; - $data[2] .= '
- '.__('Agents').': '.$agents_id.''; - $data[2] .= '
- '.__('Report per agent').': '.$report_per_agent.''; - $data[2] .= '
- '.__('Report name').': '.$report_name.''; - $data[2] .= '
- '.__('Email').": ".$email.''; - break; - - case 'cron_task_execute_custom_script': - if ($manage_pandora) { - $data[0] = ''; - $data[0] .= html_print_image( - 'images/target.png', - true, - ['title' => __('Force run')] - ); - $data[0] .= ''; - } else { - $data[0] = ''; - } - - $data[1] = $task['id_usuario']; - $data[2] = db_get_value( - 'name', - 'tuser_task', - 'id', - $task['id_user_task'] - ); - - $args = unserialize($task['args']); - $data[2] .= '
- '.__('Custom script').': '.$args[0]; - break; - - case 'cron_task_save_report_to_disk': - if ($write_perms || $manage_pandora) { - $data[0] = ''; - $data[0] .= html_print_image( - 'images/target.png', - true, - ['title' => __('Force run')] - ); - $data[0] .= ''; - } else { - $data[0] = ''; - } - - $data[1] = $task['id_usuario']; - $data[2] = db_get_value( - 'name', - 'tuser_task', - 'id', - $task['id_user_task'] - ); - - $args = unserialize($task['args']); - $report = reports_get_report($args[0]); - - // Check ACL in reports_get_report return false. - if ($report === false) { - continue; - } - - $path = $args[1]; - $data[2] .= '
- '.__('Report').": ".$report['name'].''; - $data[2] .= '
- '.__('Path').': '.$path.''; - break; - - case 'cron_task_save_xml_report_to_disk': - if ($write_perms || $manage_pandora) { - $data[0] = ''; - $data[0] .= html_print_image( - 'images/target.png', - true, - ['title' => __('Force run')] - ); - $data[0] .= ''; - } else { - $data[0] = ''; - } - - $data[1] = $task['id_usuario']; - $data[2] = db_get_value('name', 'tuser_task', 'id', $task['id_user_task']); - $args = unserialize($task['args']); - $report = reports_get_report($args[0]); - - // Check ACL in reports_get_report return false. - if ($report === false) { - continue; - } - - $path = $args[1]; - $data[2] .= '
- '.__('Report').": ".$report['name'].''; - $data[2] .= '
- '.__('Path').': '.$path.''; - break; - - case 'cron_task_do_backup': - if ($manage_pandora) { - $data[0] = ''; - $data[0] .= html_print_image( - 'images/target.png', - true, - ['title' => __('Force run')] - ); - $data[0] .= ''; - } else { - $data[0] = ''; - } - - $data[1] = $task['id_usuario']; - $data[2] = db_get_value( - 'name', - 'tuser_task', - 'id', - $task['id_user_task'] - ); - $args = unserialize($task['args']); - break; - - default: - // Ignore. - break; - } - - $data[3] = cron_get_scheduled_string($task['scheduled']); - $data[4] = date('Y/m/d H:i:s', $args['first_execution']); - $data[5] = empty($task['last_run']) ? __('Never') : date('Y/m/d H:i:s', $task['last_run']); - - $data[6] = ui_print_group_icon($task['id_grupo'], true); - - if ($function_name == 'cron_task_do_backup' || $function_name == 'cron_task_execute_custom_script') { - if ($manage_pandora) { - $data[7] = ''; - $data[7] .= html_print_image( - 'images/config.png', - true, - ['title' => __('Edit')] - ).''; - } - - if ($manage_pandora) { - $data[7] .= ''; - $data[7] .= html_print_image( - 'images/cross.png', - true, - ['title' => __('Delete')] - ); - $data[7] .= ''; - } - } else { - if ($write_perms || $manage_pandora) { - $data[7] = ''; - $data[7] .= html_print_image( - 'images/config.png', - true, - ['title' => __('Edit')] - ).''; - } - - if ($manage_perms || $manage_pandora) { - $data[7] .= ''; - $data[7] .= html_print_image( - 'images/cross.png', - true, - ['title' => __('Delete')] - ); - $data[7] .= ''; - } - } - - array_push($table->data, $data); - } - - html_print_table($table); - } else { - return false; - } - - return true; + return enterprise_hook('tasklist_showListConsoleTask', [$this]); } diff --git a/pandora_console/godmode/wizards/HostDevices.class.php b/pandora_console/godmode/wizards/HostDevices.class.php index aa5c94666c..1626b1db0b 100755 --- a/pandora_console/godmode/wizards/HostDevices.class.php +++ b/pandora_console/godmode/wizards/HostDevices.class.php @@ -780,266 +780,10 @@ $("select#interval_manual_defined").change(function() { ]; } - // Feature configuration. - // Input: SNMP enabled. - $form['inputs'][] = [ - 'label' => __('SNMP enabled'), - 'arguments' => [ - 'name' => 'snmp_enabled', - 'type' => 'switch', - 'return' => true, - 'value' => (isset($this->task['snmp_enabled'])) ? $this->task['snmp_enabled'] : 1, - 'onclick' => 'extraSNMP();', - - ], - ]; - - // SNMP CONFIGURATION. - $form['inputs'][] = [ - 'hidden' => 1, - 'block_id' => 'snmp_extra', - 'block_content' => [ - [ - 'label' => __('SNMP version'), - 'arguments' => [ - 'name' => 'snmp_version', - 'fields' => [ - '1' => 'v. 1', - '2c' => 'v. 2c', - '3' => 'v. 3', - ], - 'type' => 'select', - 'script' => 'SNMPExtraShow(this.value)', - 'selected' => $this->task['snmp_version'], - 'return' => true, - ], - ], - ], - ]; - - // SNMP Options pack v1. - $form['inputs'][] = [ - 'hidden' => 1, - 'block_id' => 'snmp_options_basic', - 'block_content' => [ - [ - 'label' => ''.__('SNMP Default community').''.ui_print_help_tip( - __( - 'You can specify several values, separated by commas, for example: public,mysecret,1234' - ), - true - ), - 'arguments' => [ - 'name' => 'community', - 'type' => 'text', - 'value' => $this->task['snmp_community'], - 'size' => 25, - 'return' => true, - - ], - ], - ], - ]; - - // SNMP Options pack v3. - $form['inputs'][] = [ - 'hidden' => 1, - 'block_id' => 'snmp_options_v3', - 'block_content' => [ - [ - 'label' => ''.__('Context').'', - 'arguments' => [ - 'name' => 'snmp_context', - 'type' => 'text', - 'value' => $this->task['snmp_community'], - 'size' => 15, - 'return' => true, - - ], - ], - [ - 'label' => ''.__('Auth user').'', - 'arguments' => [ - 'name' => 'snmp_auth_user', - 'type' => 'text', - 'value' => $this->task['snmp_auth_user'], - 'size' => 15, - 'return' => true, - - ], - ], - [ - 'label' => ''.__('Auth password').''.ui_print_help_tip( - __( - 'The pass length must be eight character minimum.' - ), - true - ), - 'arguments' => [ - 'name' => 'snmp_auth_pass', - 'type' => 'password', - 'value' => $this->task['snmp_auth_pass'], - 'size' => 15, - 'return' => true, - - ], - ], - [ - 'label' => ''.__('Privacy method').'', - 'arguments' => [ - 'name' => 'snmp_privacy_method', - 'type' => 'select', - 'fields' => [ - 'DES' => __('DES'), - 'AES' => __('AES'), - ], - 'selected' => $this->task['snmp_privacy_method'], - 'size' => 15, - 'return' => true, - - ], - ], - [ - 'label' => ''.__('Privacy pass').''.ui_print_help_tip( - __( - 'The pass length must be eight character minimum.' - ), - true - ), - 'arguments' => [ - 'name' => 'snmp_privacy_pass', - 'type' => 'password', - 'value' => $this->task['snmp_privacy_pass'], - 'size' => 15, - 'return' => true, - - ], - ], - [ - 'label' => ''.__('Auth method').'', - 'arguments' => [ - 'name' => 'snmp_auth_method', - 'type' => 'select', - 'fields' => [ - 'MD5' => __('MD5'), - 'SHA' => __('SHA'), - ], - 'selected' => $this->task['snmp_auth_method'], - 'size' => 15, - 'return' => true, - - ], - ], - [ - 'label' => ''.__('Security level').'', - 'arguments' => [ - 'name' => 'snmp_security_level', - 'type' => 'select', - 'fields' => [ - 'noAuthNoPriv' => __('Not auth and not privacy method'), - 'authNoPriv' => __('Auth and not privacy method'), - 'authPriv' => __('Auth and privacy method'), - ], - 'selected' => $this->task['snmp_security_level'], - 'size' => 15, - 'return' => true, - - ], - ], - - ], - ]; - - // Input: WMI enabled. - $form['inputs'][] = [ - 'label' => __('WMI enabled'), - 'arguments' => [ - 'name' => 'wmi_enabled', - 'type' => 'switch', - 'value' => (isset($this->task['wmi_enabled'])) ? $this->task['wmi_enabled'] : 0, - 'return' => true, - 'onclick' => 'toggleWMI();', - - ], - ]; - - // WMI CONFIGURATION. - $form['inputs'][] = [ - 'block_id' => 'wmi_extra', - 'hidden' => 1, - 'block_content' => [ - [ - 'label' => ''.__('WMI Auth. strings').''.ui_print_help_tip( - __( - 'Auth strings must be defined as user%pass, comma separated as many you need.' - ), - true - ), - 'arguments' => [ - 'name' => 'auth_strings', - 'type' => 'text', - 'value' => $this->task['auth_strings'], - 'return' => true, - ], - ], - ], - ]; - - // Input: Enforce os detection. - $form['inputs'][] = [ - 'label' => __('OS detection'), - 'arguments' => [ - 'name' => 'os_detect', - 'type' => 'switch', - 'return' => true, - 'value' => (isset($this->task['os_detect'])) ? $this->task['os_detect'] : 1, - - ], - ]; - - // Input: Name resolution. - $form['inputs'][] = [ - 'label' => __('Name resolution'), - 'arguments' => [ - 'name' => 'resolve_names', - 'type' => 'switch', - 'return' => true, - 'value' => (isset($this->task['resolve_names'])) ? $this->task['resolve_names'] : 0, - ], - ]; - - // Input: Parent detection. - $form['inputs'][] = [ - 'label' => __('Parent detection'), - 'arguments' => [ - 'name' => 'parent_detection', - 'type' => 'switch', - 'return' => true, - 'value' => (isset($this->task['parent_detection'])) ? $this->task['parent_detection'] : 1, - ], - ]; - - // Input: Parent recursion. - $form['inputs'][] = [ - 'label' => __('Parent recursion'), - 'arguments' => [ - 'name' => 'parent_recursion', - 'type' => 'switch', - 'return' => true, - 'value' => (isset($this->task['parent_recursion'])) ? $this->task['parent_recursion'] : 1, - ], - ]; - - // Input: VLAN enabled. - $form['inputs'][] = [ - 'label' => __('VLAN enabled'), - 'arguments' => [ - 'name' => 'vlan_enabled', - 'type' => 'switch', - 'return' => true, - 'value' => (isset($this->task['vlan_enabled'])) ? $this->task['vlan_enabled'] : 1, - ], - ]; + if (enterprise_installed()) { + // Feature configuration. + enterprise_require('include/hostdevices_extra.php'); + } // Submit button. $form['inputs'][] = [ @@ -1052,57 +796,6 @@ $("select#interval_manual_defined").change(function() { ], ]; - $form['js'] = ' -function SNMPExtraShow(target) { - $("#snmp_options_basic").hide(); - $("#snmp_options_v3").hide(); - if (document.getElementsByName("snmp_enabled")[0].checked) { - $("#snmp_extra").show(); - if (target == 3) { - $("#snmp_options_v3").show(); - } else { - $("#snmp_options_basic").show(); - } - } - -} - -function extraSNMP() { - if (document.getElementsByName("snmp_enabled")[0].checked) { - SNMPExtraShow($("#snmp_version").val()); - $("#snmp_extra").show(); - } else { - // Hide unusable sections - $("#snmp_extra").hide(); - $("#snmp_options_basic").hide(); - $("#snmp_options_v3").hide(); - - // Disable snmp dependant checks - if (document.getElementsByName("parent_recursion")[0].checked) - $("input[name=parent_recursion]").click(); - - if (document.getElementsByName("parent_detection")[0].checked) - $("input[name=parent_detection]").click(); - - if (document.getElementsByName("vlan_enabled")[0].checked) - $("input[name=vlan_enabled]").click(); - - } -} - -function toggleWMI() { - if (document.getElementsByName("wmi_enabled")[0].checked) - $("#wmi_extra").show(); - else - $("#wmi_extra").hide(); -} - -$(function() { - SNMPExtraShow($("#snmp_version").val()); - toggleWMI(); -}); - '; - $form['form'] = [ 'method' => 'POST', 'action' => $this->url.'&mode=netscan&page='.($this->page + 1).'&task='.$this->task['id_rt'], From 24a1adfb9fa293e4d33ef9dc50a52ad17ccb0b20 Mon Sep 17 00:00:00 2001 From: fbsanchez Date: Tue, 26 Feb 2019 20:08:01 +0100 Subject: [PATCH 5/6] minor fix Former-commit-id: 6729d11217d0fecb7b64283b6e4d0485b9bdfdc8 --- pandora_console/godmode/wizards/HostDevices.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/godmode/wizards/HostDevices.class.php b/pandora_console/godmode/wizards/HostDevices.class.php index 1626b1db0b..a1143fad03 100755 --- a/pandora_console/godmode/wizards/HostDevices.class.php +++ b/pandora_console/godmode/wizards/HostDevices.class.php @@ -782,7 +782,7 @@ $("select#interval_manual_defined").change(function() { if (enterprise_installed()) { // Feature configuration. - enterprise_require('include/hostdevices_extra.php'); + enterprise_require_once('include/hostdevices_extra.php'); } // Submit button. From 7ed3252ca5a3afb929b8d0f2fd6308a896647bfa Mon Sep 17 00:00:00 2001 From: fbsanchez Date: Tue, 26 Feb 2019 20:23:52 +0100 Subject: [PATCH 6/6] minor fixes Former-commit-id: 75b33343bed508ff3ff136fa0fedc5d9d8c952be --- .../godmode/wizards/DiscoveryTaskList.class.php | 14 +++++--------- .../godmode/wizards/HostDevices.class.php | 10 +++++++++- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php index 0daa3d3cd7..144e6e29ee 100644 --- a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php +++ b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php @@ -150,9 +150,9 @@ class DiscoveryTaskList extends Wizard ], ], ]; - } - $this->printForm($form); + $this->printForm($form); + } return $ret; } @@ -311,7 +311,8 @@ class DiscoveryTaskList extends Wizard if ($servers === false) { $servers = []; ui_print_error_message(__('Discovery Server is disabled')); - return false; + $check = db_get_all_rows_sql('SELECT * FROM trecon_task'); + return (bool) $check; } else { include_once $config['homedir'].'/include/functions_graph.php'; include_once $config['homedir'].'/include/functions_servers.php'; @@ -339,12 +340,7 @@ class DiscoveryTaskList extends Wizard foreach ($servers as $serverItem) { $id_server = $serverItem['id_server']; $server_name = servers_get_name($id_server); - $recon_tasks = db_get_all_rows_field_filter( - 'trecon_task', - 'id_recon_server', - $id_server - ); - + $recon_tasks = db_get_all_rows_sql('SELECT * FROM trecon_task'); $user_groups = implode(',', array_keys(users_get_groups())); $defined_tasks = db_get_all_rows_filter( 'tuser_task_scheduled', diff --git a/pandora_console/godmode/wizards/HostDevices.class.php b/pandora_console/godmode/wizards/HostDevices.class.php index a1143fad03..f405641fde 100755 --- a/pandora_console/godmode/wizards/HostDevices.class.php +++ b/pandora_console/godmode/wizards/HostDevices.class.php @@ -29,6 +29,7 @@ require_once __DIR__.'/Wizard.main.php'; require_once $config['homedir'].'/include/functions_users.php'; enterprise_include('include/class/CSVImportAgents.class.php'); +enterprise_include_once('include/functions_hostdevices.php'); /** * Wizard section Host&devices. @@ -782,7 +783,14 @@ $("select#interval_manual_defined").change(function() { if (enterprise_installed()) { // Feature configuration. - enterprise_require_once('include/hostdevices_extra.php'); + $extra = enterprise_hook('hd_showextrainputs', [$this]); + if (is_array($extra) === true) { + $form['inputs'] = array_merge( + $form['inputs'], + $extra['inputs'] + ); + $form['js'] = $extra['js']; + } } // Submit button.