<?php // Pandora FMS - http://pandorafms.com // ================================================== // Copyright (c) 2005-2010 Artica Soluciones Tecnologicas // Please see http://pandorafms.org for full contribution list // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation for version 2. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // Load global vars check_login (); if (! check_acl ($config['id_user'], 0, "AW")) { db_pandora_audit("ACL Violation", "Trying to access massive operation section"); require ("general/noaccess.php"); return; } require_once ('include/functions_agents.php'); require_once ('include/functions_alerts.php'); require_once ('include/functions_modules.php'); enterprise_include ('godmode/massive/massive_operations.php'); $tab = (string) get_parameter ('tab', 'massive_agents'); $option = (string) get_parameter ('option', ''); $options_alerts = array( 'add_alerts' => __('Massive alerts addition'), 'delete_alerts' => __('Massive alerts deletion'), 'add_action_alerts' => __('Massive alert actions addition'), 'delete_action_alerts' => __('Massive alert actions deletion'), 'enable_disable_alerts' => __('Massive alert enable/disable'), 'standby_alerts' => __('Massive alert setting standby')); $options_agents = array( 'edit_agents' => __('Massive agents edition'), 'delete_agents' => __('Massive agents deletion')); if (check_acl ($config['id_user'], 0, "PM")) { $options_users = array( 'add_profiles' => __('Massive profiles addition'), 'delete_profiles' => __('Massive profiles deletion')); } else { $options_users = array(); } $options_modules = array( 'delete_modules' => __('Massive modules deletion'), 'edit_modules' => __('Massive modules edition'), 'copy_modules' => __('Massive modules copy')); $options_plugins = array( 'edit_plugins' => __('Bulk plugin edit') ); if (! check_acl ($config['id_user'], 0, "PM")) { unset($options_modules['edit_modules']); } $options_policies = array(); $policies_options = enterprise_hook('massive_policies_options'); if ($policies_options != ENTERPRISE_NOT_HOOK) { $options_policies = array_merge($options_policies, $policies_options); } $options_snmp = array(); $snmp_options = enterprise_hook('massive_snmp_options'); if ($snmp_options != ENTERPRISE_NOT_HOOK) { $options_snmp = array_merge($options_snmp, $snmp_options); } $options_satellite = array(); $satellite_options = enterprise_hook('massive_satellite_options'); if ($satellite_options != ENTERPRISE_NOT_HOOK) { $options_satellite = array_merge($options_satellite, $satellite_options); } if (in_array($option, array_keys($options_alerts))) { $tab = 'massive_alerts'; } elseif (in_array($option, array_keys($options_agents))) { $tab = 'massive_agents'; } elseif (in_array($option, array_keys($options_users))) { $tab = 'massive_users'; } elseif (in_array($option, array_keys($options_modules))) { $tab = 'massive_modules'; } elseif (in_array($option, array_keys($options_policies))) { $tab = 'massive_policies'; } elseif (in_array($option, array_keys($options_snmp))) { $tab = 'massive_snmp'; } elseif (in_array($option, array_keys($options_satellite))) { $tab = 'massive_satellite'; } elseif (in_array($option, array_keys($options_plugins))) { $tab = 'massive_plugins'; } else { $option = ''; } switch ($tab) { case 'massive_alerts': $options = $options_alerts; break; case 'massive_agents': $options = $options_agents; break; case 'massive_modules': $options = $options_modules; break; case 'massive_users': $options = $options_users; break; case 'massive_policies': $options = $options_policies; break; case 'massive_snmp': $options = $options_snmp; break; case 'massive_satellite': $options = $options_satellite; break; case 'massive_plugins': $options = $options_plugins; break; } // Set the default option of the category if ($option == '') { $option = array_shift(array_keys($options)); } $alertstab = array('text' => '<a href="index.php?sec=gmassive&sec2=godmode/massive/massive_operations&tab=massive_alerts">' . html_print_image ('images/op_alerts.png', true, array ('title' => __('Alerts operations'))) . '</a>', 'active' => $tab == 'massive_alerts'); $userstab = array('text' => '<a href="index.php?sec=gmassive&sec2=godmode/massive/massive_operations&tab=massive_users">' . html_print_image ('images/op_workspace.png', true, array ('title' => __('Users operations'))) . '</a>', 'active' => $tab == 'massive_users'); $agentstab = array('text' => '<a href="index.php?sec=gmassive&sec2=godmode/massive/massive_operations&tab=massive_agents">' . html_print_image ('images/bricks.png', true, array ('title' => __('Agents operations'))) . '</a>', 'active' => $tab == 'massive_agents'); $modulestab = array('text' => '<a href="index.php?sec=gmassive&sec2=godmode/massive/massive_operations&tab=massive_modules">' . html_print_image ('images/brick.png', true, array ('title' => __('Modules operations'))) . '</a>', 'active' => $tab == 'massive_modules'); $pluginstab = array('text' => '<a href="index.php?sec=gmassive&sec2=godmode/massive/massive_operations&tab=massive_plugins">' . html_print_image ('images/plugin.png', true, array ('title' => __('Plugins operations'))) . '</a>', 'active' => $tab == 'massive_plugins'); $policiestab = enterprise_hook('massive_policies_tab'); if ($policiestab == ENTERPRISE_NOT_HOOK) $policiestab = ""; $snmptab = enterprise_hook('massive_snmp_tab'); if ($snmptab == ENTERPRISE_NOT_HOOK) $snmptab = ""; $satellitetab = enterprise_hook('massive_satellite_tab'); if ($satellitetab == ENTERPRISE_NOT_HOOK) $satellitetab = ""; $onheader = array(); $onheader['massive_agents'] = $agentstab; $onheader['massive_modules'] = $modulestab; $onheader['massive_plugins'] = $pluginstab; if (check_acl ($config['id_user'], 0, "PM")) { $onheader['user_agents'] = $userstab; } $onheader['massive_alerts'] = $alertstab; $onheader['policies'] = $policiestab; $onheader['snmp'] = $snmptab; $onheader['satellite'] = $satellitetab; ui_print_page_header( __('Massive operations') . ' » '. $options[$option], "images/gm_massive_operations.png", false, "", true, $onheader); // Checks if the PHP configuration is correctly if ((get_cfg_var("max_execution_time") != 0) or (get_cfg_var("max_input_time") != -1)) { echo '<div id="notify_conf" class="notify">'; echo __("In order to perform massive operations, PHP needs a correct configuration in timeout parameters. Please, open your PHP configuration file (php.ini) for example: <i>sudo vi /etc/php5/apache2/php.ini;</i><br> And set your timeout parameters to a correct value: <br><i> max_execution_time = 0</i> and <i>max_input_time = -1</i>"); echo '</div>'; } // Catch all submit operations in this view to display Wait banner $submit_action = get_parameter('go'); $submit_update = get_parameter('updbutton'); $submit_del = get_parameter('del'); $submit_template_disabled = get_parameter('id_alert_template_disabled'); $submit_template_enabled = get_parameter('id_alert_template_enabled'); $submit_template_not_standby = get_parameter('id_alert_template_not_standby'); $submit_template_standby = get_parameter('id_alert_template_standby'); $submit_add = get_parameter('crtbutton'); echo '<div id="loading" display="none">'; echo html_print_image("images/wait.gif", true, array("border" => '0')) . '<br />'; echo '<strong>' . __('Please wait...') . '</strong>'; echo '</div>'; ?> <script language="javascript" type="text/javascript"> $(document).ready (function () { $('#manage_config_form').submit( function() { confirm_status = confirm("<?php echo __('Are you sure?'); ?>"); if (confirm_status) $("#loading").css("display", ""); else return false; }); $('[id^=form]').submit( function() { confirm_status = confirm("<?php echo __('Are you sure?'); ?>"); if (confirm_status) $("#loading").css("display", ""); else return false; }); $("#loading").css("display", "none"); }); </script> <?php echo "<br />"; echo '<form method="post" id="form_options" action="index.php?sec=gmassive&sec2=godmode/massive/massive_operations">'; echo '<table border="0"><tr><td>'; echo __("Action"); echo '</td><td>'; html_print_select($options, 'option', $option, 'this.form.submit()', '', 0, false, false, false); if ($option == 'edit_agents' || $option == 'edit_modules') ui_print_help_tip(__("The blank fields will not be updated")); echo '</td></tr></table>'; echo '</form>'; echo "<br />"; switch ($option) { case 'delete_alerts': require_once ('godmode/massive/massive_delete_alerts.php'); break; case 'add_alerts': require_once ('godmode/massive/massive_add_alerts.php'); break; case 'delete_action_alerts': require_once ('godmode/massive/massive_delete_action_alerts.php'); break; case 'add_action_alerts': require_once ('godmode/massive/massive_add_action_alerts.php'); break; case 'enable_disable_alerts': require_once ('godmode/massive/massive_enable_disable_alerts.php'); break; case 'standby_alerts': require_once ('godmode/massive/massive_standby_alerts.php'); break; case 'add_profiles': require_once ('godmode/massive/massive_add_profiles.php'); break; case 'delete_profiles': require_once ('godmode/massive/massive_delete_profiles.php'); break; case 'delete_agents': require_once ('godmode/massive/massive_delete_agents.php'); break; case 'edit_agents': require_once ('godmode/massive/massive_edit_agents.php'); break; case 'delete_modules': require_once ('godmode/massive/massive_delete_modules.php'); break; case 'edit_modules': require_once ('godmode/massive/massive_edit_modules.php'); break; case 'copy_modules': require_once ('godmode/massive/massive_copy_modules.php'); break; case 'edit_plugins': require_once ('godmode/massive/massive_edit_plugins.php'); break; default: if (!enterprise_hook('massive_operations', array($option))) { require_once ('godmode/massive/massive_config.php'); } break; } ?>