diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index fd81afb5d0..317be49321 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 6.0SP3-160908 +Version: 6.0SP3-160912 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index c61b967d1c..2e01c96f1f 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0SP3-160908" +pandora_version="6.0SP3-160912" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 1302b08822..996c4aba01 100644 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -41,7 +41,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '6.0SP3'; -use constant AGENT_BUILD => '160908'; +use constant AGENT_BUILD => '160912'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 935186e177..514c73f4b1 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0SP3 -%define release 160908 +%define release 160912 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 4a5ee9d5e6..feab5ffc8f 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0SP3 -%define release 160908 +%define release 160912 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 45da2eb2fd..6d4775a9fe 100644 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="6.0SP3" -PI_BUILD="160908" +PI_BUILD="160912" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/unix/plugins/grep_log b/pandora_agents/unix/plugins/grep_log index b51d8e0e24..7661a2951d 100755 --- a/pandora_agents/unix/plugins/grep_log +++ b/pandora_agents/unix/plugins/grep_log @@ -53,6 +53,12 @@ my $Idx_size = 0; # Regular expression to be matched my $Reg_exp = ''; +# Flag to show or not summary module +my $summary_flag = 0; + +# Number of coincidences found +my $coincidences = 0; + ############################################################################### # SUB error_msg # Print an error message and exit. @@ -72,7 +78,7 @@ sub error_msg ($) { # Print a help message. ############################################################################### sub print_help () { - print "Usage: $0 \n"; + print "Usage: $0 [--summary]\n"; } ############################################################################### @@ -193,6 +199,7 @@ sub parse_log (;$$) { push @lines, $line; if ($line =~ m/$Reg_exp/i) { push @nl_found, $nl; + $coincidences++; } $nl++; } @@ -236,6 +243,21 @@ sub parse_log (;$$) { return @data; } +############################################################################### +# SUB print_summary +# Print module summary to stdout. +############################################################################### +sub print_summary() { + my $output = "\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "\n"; + print stdout $output; +} + ############################################################################### # SUB parse_log # Print log data to stdout. @@ -245,6 +267,7 @@ sub print_log (@) { # No data if ($#data < 0) { + print_summary() if ($summary_flag == 1); return; } @@ -263,7 +286,9 @@ sub print_log (@) { } # Regular module else { - my $output = "\n"; + my $output; + print_summary() if ($summary_flag == 1); + $output = "\n"; $output .= "\n"; $output .= "\n"; $output .= "\n"; @@ -292,8 +317,15 @@ if ($#ARGV < 2) { $Log_file = $ARGV[0]; $Module_name = $ARGV[1]; $Reg_exp = $ARGV[2]; -my $up_lines = $ARGV[3]; +my $up_lines = $ARGV[3]; my $bot_lines = $ARGV[4]; +my $sum_flag = $ARGV[5]; + +if ( ( defined($up_lines) && ($up_lines eq "--summary")) + || ( defined($bot_lines) && ($bot_lines eq "--summary")) + || ( defined($sum_flag) && ($sum_flag eq "--summary")) ) { + $summary_flag = 1; +} # Create index file storage directory if ( ! -d $Idx_dir) { mkdir($Idx_dir) || error_msg("Error creating directory $Idx_dir: " diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index c890ca8fd1..e8bda5a4c1 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{160908} +{160912} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 8fa2b3eb4d..aa43a43644 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("6.0SP3(Build 160908)") +#define PANDORA_VERSION ("6.0SP3(Build 160912)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 49757a7e7a..40314cc44d 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(6.0SP3(Build 160908))" + VALUE "ProductVersion", "(6.0SP3(Build 160912))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index f44592825a..3d0b2770f5 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 6.0SP3-160908 +Version: 6.0SP3-160912 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 22c8a44a45..ea7ee46845 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0SP3-160908" +pandora_version="6.0SP3-160912" package_pear=0 package_pandora=1 diff --git a/pandora_console/godmode/agentes/planned_downtime.editor.php b/pandora_console/godmode/agentes/planned_downtime.editor.php index 844c456887..5ed25e4e2a 100644 --- a/pandora_console/godmode/agentes/planned_downtime.editor.php +++ b/pandora_console/godmode/agentes/planned_downtime.editor.php @@ -17,8 +17,10 @@ global $config; check_login(); - -if (! check_acl ($config['id_user'], 0, "AD")) { +$agent_d = check_acl ($config['id_user'], 0, "AD"); +$agent_w = check_acl ($config['id_user'], 0, "AW"); +$access = ($agent_d == true) ? 'AD' : (($agent_w == true) ? 'AW' : 'AD'); +if (!$agent_d && !$agent_w) { db_pandora_audit("ACL Violation", "Trying to access downtime scheduler"); require ("general/noaccess.php"); @@ -82,8 +84,8 @@ $id_agent = (int) get_parameter ('id_agent'); $insert_downtime_agent = (int) get_parameter ('insert_downtime_agent'); $delete_downtime_agent = (int) get_parameter ('delete_downtime_agent'); -// User groups with AD permission for ACL checks -$user_groups_ad = array_keys(users_get_groups($config['id_user'], 'AD')); +// User groups with AD or AW permission for ACL checks +$user_groups_ad = array_keys(users_get_groups($config['id_user'], $access)); // INSERT A NEW DOWNTIME_AGENT ASSOCIATION if ($insert_downtime_agent === 1) { @@ -472,7 +474,7 @@ $table->data = array (); $table->data[0][0] = __('Name'); $table->data[0][1] = html_print_input_text ('name', $name, '', 25, 40, true, $disabled_in_execution); $table->data[1][0] = __('Group'); -$table->data[1][1] = html_print_select_groups(false, "AD", true, 'id_group', $id_group, '', '', 0, true, false, true, '', $disabled_in_execution); +$table->data[1][1] = html_print_select_groups(false, $access, true, 'id_group', $id_group, '', '', 0, true, false, true, '', $disabled_in_execution); $table->data[2][0] = __('Description'); $table->data[2][1] = html_print_textarea ('description', 3, 35, $description, '', true); @@ -671,7 +673,7 @@ if ($id_downtime > 0) { echo "
"; - html_print_select_groups(false, "AD", true, 'filter_group', $filter_group, '', '', '', false, false, true, '', false, 'width:180px'); + html_print_select_groups(false, $access, true, 'filter_group', $filter_group, '', '', '', false, false, true, '', false, 'width:180px'); echo "

"; html_print_submit_button (__('Filter by group'), '', false, 'class="sub next"',false); diff --git a/pandora_console/godmode/agentes/planned_downtime.list.php b/pandora_console/godmode/agentes/planned_downtime.list.php index 5dc9234060..0e42cb3930 100755 --- a/pandora_console/godmode/agentes/planned_downtime.list.php +++ b/pandora_console/godmode/agentes/planned_downtime.list.php @@ -20,8 +20,10 @@ check_login(); $read_permisson = check_acl ($config['id_user'], 0, "AR"); $write_permisson = check_acl ($config['id_user'], 0, "AD"); +$manage_permisson = check_acl ($config['id_user'], 0, "AW"); +$access = ($read_permisson == true) ? 'AR' : (($write_permisson == true) ? 'AD' : (($manage_permisson == true) ? 'AW' : 'AR')); -if (! $read_permisson) { +if (! $read_permisson && !$manage_permisson) { db_pandora_audit("ACL Violation", "Trying to access downtime scheduler"); require ("general/noaccess.php"); @@ -64,7 +66,7 @@ if ($stop_downtime) { $downtime = db_get_row('tplanned_downtime', 'id', $id_downtime); // Check AD permission on the downtime - if (empty($downtime) || ! check_acl ($config['id_user'], $downtime['id_group'], "AD")) { + if (empty($downtime) || (! check_acl ($config['id_user'], $downtime['id_group'], "AD") && ! check_acl ($config['id_user'], $downtime['id_group'], "AW"))) { db_pandora_audit("ACL Violation", "Trying to access downtime scheduler"); require ("general/noaccess.php"); @@ -87,7 +89,7 @@ if ($delete_downtime) { $downtime = db_get_row('tplanned_downtime', 'id', $id_downtime); // Check AD permission on the downtime - if (empty($downtime) || ! check_acl ($config['id_user'], $downtime['id_group'], "AD")) { + if (empty($downtime) || (! check_acl ($config['id_user'], $downtime['id_group'], "AD") && ! check_acl ($config['id_user'], $downtime['id_group'], "AW"))) { db_pandora_audit("ACL Violation", "Trying to access downtime scheduler"); require ("general/noaccess.php"); @@ -172,7 +174,7 @@ $row[] = $agent_input; // Module $row[] = __('Module') . ' ' . html_print_autocomplete_modules('module_name', $module_name, false, true, '', array(), true); -$row[] = html_print_submit_button('Search', 'search', false, 'class="sub search"', true); +$row[] = html_print_submit_button(__('Search'), 'search', false, 'class="sub search"', true); $table_form->data[] = $row; // End of table filter @@ -180,7 +182,7 @@ $table_form->data[] = $row; // Useful to know if the user has done a form filtering $filter_performed = false; -$groups = users_get_groups (); +$groups = users_get_groups (false, $access); if (!empty($groups)) { $where_values = "1=1"; @@ -375,8 +377,8 @@ else { ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset); - // User groups with AD permission - $groupsAD = users_get_groups($config['id_user'], 'AD'); + // User groups with AR, AD or AW permission + $groupsAD = users_get_groups($config['id_user'], $access); $groupsAD = array_keys($groupsAD); // View available downtimes present in database (if any of them) @@ -394,7 +396,7 @@ else { $table->head['configuration'] = __('Configuration'); $table->head['running'] = __('Running'); - if ($write_permisson) { + if ($write_permisson || $manage_permisson) { $table->head['stop'] = __('Stop downtime'); $table->head['edit'] = __('Edit'); $table->head['delete'] = __('Delete'); @@ -404,7 +406,7 @@ else { $table->align['group'] = "center"; $table->align['running'] = "center"; - if ($write_permisson) { + if ($write_permisson || $manage_permisson) { $table->align['stop'] = "center"; $table->align['edit'] = "center"; $table->align['delete'] = "center"; @@ -542,4 +544,4 @@ $(document).ready (function () { } }); - \ No newline at end of file + diff --git a/pandora_console/godmode/alerts/alert_list.list.php b/pandora_console/godmode/alerts/alert_list.list.php index d8d90bc05b..8d7fe0093c 100644 --- a/pandora_console/godmode/alerts/alert_list.list.php +++ b/pandora_console/godmode/alerts/alert_list.list.php @@ -20,7 +20,9 @@ check_login (); /* Check if this page is included from a agent edition */ -if (! check_acl ($config['id_user'], 0, "LW") && ! check_acl ($config['id_user'], 0, "AD")) { +if (! check_acl ($config['id_user'], 0, "LW") && + ! check_acl ($config['id_user'], 0, "AD") && + ! check_acl ($config['id_user'], 0, "LM")) { db_pandora_audit("ACL Violation", "Trying to access Alert Management"); require ("general/noaccess.php"); @@ -88,7 +90,12 @@ $form_filter .= ""; $all_groups = db_get_value('is_admin', 'tusuario', 'id_user', $config['id_user']); -$groups_user = users_get_groups($config['id_user'], 'AR', $all_groups); +if (check_acl ($config['id_user'], 0, "AD")) + $groups_user = users_get_groups($config['id_user'], 'AD', $all_groups); +elseif (check_acl ($config['id_user'], 0, "LW")) + $groups_user = users_get_groups($config['id_user'], 'LW', $all_groups); +elseif (check_acl ($config['id_user'], 0, "LM")) + $groups_user = users_get_groups($config['id_user'], 'LM', $all_groups); if ($groups_user === false) { $groups_user = array(); } @@ -478,7 +485,7 @@ foreach ($simple_alerts as $alert) { $data[1] .= html_print_image("images/zoom.png", true, array("id" => 'template-details-'.$alert['id_alert_template'], "class" => "img_help")); $data[1] .= ' '; - if(check_acl ($config['id_user'], $template_group, "LW")) { + if(check_acl ($config['id_user'], $template_group, "LW") || check_acl ($config['id_user'], $template_group, "LM")) { $data[1] .= ""; } @@ -533,7 +540,7 @@ foreach ($simple_alerts as $alert) { $data[2] .= ''; // Is possible manage actions if have LW permissions in the agent group of the alert module - if (check_acl ($config['id_user'], $agent_group, "LW")) { + if (check_acl ($config['id_user'], $agent_group, "LW") || check_acl ($config['id_user'], $template_group, "LM")) { $data[2] .= ''; $data[2] .= html_print_input_image ('delete', 'images/cross.png', 1, 'padding:0px;', true, @@ -549,9 +556,12 @@ foreach ($simple_alerts as $alert) { } $data[2] .= ''; // Is possible manage actions if have LW permissions in the agent group of the alert module - if (check_acl ($config['id_user'], $agent_group, "LW")) { + if (check_acl ($config['id_user'], $agent_group, "LW") || check_acl ($config['id_user'], $template_group, "LM")) { $own_info = get_user_info($config['id_user']); - $own_groups = users_get_groups($config['id_user'], 'LW', true); + if (check_acl ($config['id_user'], $template_group, "LW")) + $own_groups = users_get_groups($config['id_user'], 'LW', true); + elseif (check_acl ($config['id_user'], $template_group, "LM")) + $own_groups = users_get_groups($config['id_user'], 'LM', true); $filter_groups = ''; $filter_groups = implode(',', array_keys($own_groups)); $actions = alerts_get_alert_actions_filter(true, 'id_group IN (' . $filter_groups . ')'); @@ -643,7 +653,7 @@ foreach ($simple_alerts as $alert) { $data[4] .= '
'; // To manage alert is necessary LW permissions in the agent group - if(check_acl ($config['id_user'], $agent_group, "LW")) { + if(check_acl ($config['id_user'], $agent_group, "LW") || check_acl ($config['id_user'], $template_group, "LM")) { $data[4] .= '  
'; if (!$alert['standby']) { $data[4] .= html_print_input_image ('standby_off', 'images/bell.png', 1, 'padding:0px;', true); @@ -674,7 +684,7 @@ foreach ($simple_alerts as $alert) { } // To manage alert is necessary LW permissions in the agent group - if(check_acl ($config['id_user'], $agent_group, "LW")) { + if(check_acl ($config['id_user'], $agent_group, "LW") || check_acl ($config['id_user'], $template_group, "LM")) { $data[4] .= '  '; if ($alert['disabled']) { $data[4] .= html_print_image('images/add.disabled.png', @@ -714,7 +724,7 @@ if (isset($dont_display_alert_create_bttn)) if ($dont_display_alert_create_bttn) $display_create = false; -if ($display_create && check_acl ($config['id_user'], 0, "LW")) { +if ($display_create && (check_acl ($config['id_user'], 0, "LW") || check_acl ($config['id_user'], $template_group, "LM"))) { echo '
'; echo ''; html_print_submit_button (__('Create'), 'crtbtn', false, 'class="sub next"'); diff --git a/pandora_console/godmode/alerts/alert_list.php b/pandora_console/godmode/alerts/alert_list.php index d736a14cf6..b79f063186 100644 --- a/pandora_console/godmode/alerts/alert_list.php +++ b/pandora_console/godmode/alerts/alert_list.php @@ -18,7 +18,9 @@ global $config; // Login check check_login (); -if (! check_acl ($config['id_user'], 0, "LW") && ! check_acl ($config['id_user'], 0, "AD")) { +if (! check_acl ($config['id_user'], 0, "LW") && + ! check_acl ($config['id_user'], 0, "AD") && + ! check_acl ($config['id_user'], 0, "LM")) { db_pandora_audit("ACL Violation", "Trying to access Alert Management"); require ("general/noaccess.php"); @@ -266,7 +268,7 @@ if ($id_agente) { require_once('godmode/alerts/alert_list.list.php'); - if(check_acl ($config['id_user'], $agent['id_grupo'], "LW")) { + if(check_acl ($config['id_user'], $agent['id_grupo'], "LW") || check_acl ($config['id_user'], $agent['id_grupo'], "LM")) { require_once('godmode/alerts/alert_list.builder.php'); } @@ -274,9 +276,9 @@ if ($id_agente) { } else { $searchFlag = true; - if (!defined('METACONSOLE')) { + if (!is_metaconsole()) { // The tabs will be shown only with manage alerts permissions - if(check_acl ($config['id_user'], 0, "LW")) { + if(check_acl ($config['id_user'], 0, "LW") || check_acl ($config['id_user'], 0, "LM")) { $buttons = array( 'list' => array( 'active' => false, @@ -315,7 +317,7 @@ else { else { $groups = array(0 => __('All')); } - $agents = agents_get_group_agents (array_keys ($groups), false, "none"); + $agents = agents_get_group_agents (array_keys ($groups), false, "none",true); require_once($config['homedir'] . '/godmode/alerts/alert_list.list.php'); diff --git a/pandora_console/godmode/events/custom_events.php b/pandora_console/godmode/events/custom_events.php index c9010121a7..94e834bbf5 100644 --- a/pandora_console/godmode/events/custom_events.php +++ b/pandora_console/godmode/events/custom_events.php @@ -18,7 +18,7 @@ global $config; check_login (); -if (! check_acl($config['id_user'], 0, "EW")) { +if (! check_acl($config['id_user'], 0, "PM")) { db_pandora_audit("ACL Violation", "Trying to access Custom events Management"); require ("general/noaccess.php"); diff --git a/pandora_console/godmode/events/event_edit_filter.php b/pandora_console/godmode/events/event_edit_filter.php index 50461f9bbd..47802c94e5 100644 --- a/pandora_console/godmode/events/event_edit_filter.php +++ b/pandora_console/godmode/events/event_edit_filter.php @@ -18,7 +18,11 @@ global $config; check_login (); -if (! check_acl ($config["id_user"], 0, "EW")) { +$event_w = check_acl ($config['id_user'], 0, "EW"); +$event_m = check_acl ($config['id_user'], 0, "EM"); +$access = ($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'EW'); + +if (!$event_w && !$event_m) { db_pandora_audit("ACL Violation", "Trying to access events filter editor"); require ("general/noaccess.php"); @@ -183,9 +187,7 @@ $table->style[0] = 'vertical-align: top;'; $table->valign[1] = 'top'; -if (defined('METACONSOLE')) { - $table->width = '100%'; - $table->border = 0; +if (is_metaconsole()) { if ($id) { $table->head[0] = __('Update Filter'); } @@ -206,12 +208,12 @@ $table->data[0][1] = $table->data[1][0] = '' . __('Save in group') . '' . ui_print_help_tip(__('This group will be use to restrict the visibility of this filter with ACLs'), true); $table->data[1][1] = html_print_select_groups( - $config['id_user'], "ER", users_can_manage_group_all(), + $config['id_user'], $access, users_can_manage_group_all(), "id_group_filter", $id_group_filter, '', '', -1, true, false, false, '', false, '', false, false, 'id_grupo', $strict_user); $table->data[2][0] = '' . __('Group').''; -$table->data[2][1] = html_print_select_groups($config["id_user"], "ER", +$table->data[2][1] = html_print_select_groups($config["id_user"], $access, true, 'id_group', $id_group, '', '', -1, true, false, false, '', false, false, false, false, 'id_grupo', $strict_user); @@ -244,7 +246,7 @@ $params['input_name'] = 'text_agent'; $params['value'] = $text_agent; $params['return'] = true; -if (defined('METACONSOLE')) { +if (is_metaconsole()) { $params['javascript_page'] = 'enterprise/meta/include/ajax/events.ajax'; } else { @@ -276,7 +278,7 @@ if ($strict_user) { $users = array($config['id_user'] => $config['id_user']); } else { - $users = users_get_user_users($config['id_user'], "ER", + $users = users_get_user_users($config['id_user'], $access, users_can_manage_group_all()); } @@ -300,7 +302,7 @@ if (empty($tag_without)) { } # Fix : only admin users can see all tags -$tags = tags_get_user_tags($config['id_user'], 'ER'); +$tags = tags_get_user_tags($config['id_user'], $access); $tags_select_with = array(); $tags_select_without = array(); diff --git a/pandora_console/godmode/events/event_filter.php b/pandora_console/godmode/events/event_filter.php index 894d29254c..d2018c459a 100644 --- a/pandora_console/godmode/events/event_filter.php +++ b/pandora_console/godmode/events/event_filter.php @@ -18,7 +18,11 @@ global $config; check_login (); -if (! check_acl ($config["id_user"], 0, "EW")) { +$event_w = check_acl ($config['id_user'], 0, "EW"); +$event_m = check_acl ($config['id_user'], 0, "EM"); +$access = ($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'EW'); + +if (!$event_w && !$event_m) { db_pandora_audit("ACL Violation", "Trying to access events filter editor"); require ("general/noaccess.php"); @@ -83,7 +87,7 @@ if ($strict_acl) { users_can_manage_group_all()); } else { - $groups_user = users_get_groups ($config['id_user'], "EW", + $groups_user = users_get_groups ($config['id_user'], $access, users_can_manage_group_all(), true); } @@ -157,7 +161,7 @@ else { if (isset($data)) { echo ""; html_print_input_hidden('multiple_delete', 1); - if(!defined("METACONSOLE")) + if(!is_metaconsole()) echo "
"; else echo "
"; diff --git a/pandora_console/godmode/events/event_responses.editor.php b/pandora_console/godmode/events/event_responses.editor.php index baff6e1d40..f2ad561a39 100644 --- a/pandora_console/godmode/events/event_responses.editor.php +++ b/pandora_console/godmode/events/event_responses.editor.php @@ -59,7 +59,7 @@ $table = new stdClass(); $table->width = '100%'; $table->class = 'databox filters'; -if(defined('METACONSOLE')) { +if(is_metaconsole()) { $table->head[0] = __('Edit event responses'); $table->head_colspan[0] = 5; $table->headstyle[0] = 'text-align: center'; @@ -79,7 +79,7 @@ $data[1] = html_print_input_text('name', $event_response['name'], '', $data[1] .= html_print_input_hidden('id_response',$event_response['id'],true); $data[2] = __('Group'); -$data[3] = html_print_select_groups(false, 'AR', true, 'id_group',$event_response['id_group'],'','','',true); +$data[3] = html_print_select_groups(false, 'PM', true, 'id_group',$event_response['id_group'],'','','',true); $table->data[0] = $data; $data = array(); diff --git a/pandora_console/godmode/events/events.php b/pandora_console/godmode/events/events.php index 9635140edc..ea9d9dcbfd 100644 --- a/pandora_console/godmode/events/events.php +++ b/pandora_console/godmode/events/events.php @@ -20,7 +20,7 @@ check_login (); enterprise_hook('open_meta_frame'); -if (! check_acl ($config["id_user"], 0, "EW")) { +if (!check_acl ($config["id_user"], 0, "EW") && !check_acl ($config["id_user"], 0, "EM") && ! check_acl ($config["id_user"], 0, "PM")) { db_pandora_audit("ACL Violation", "Trying to access event manage"); require ("general/noaccess.php"); @@ -31,29 +31,31 @@ if (! check_acl ($config["id_user"], 0, "EW")) { $section = (string) get_parameter ("section", "filter"); // Draws header -$buttons['view'] = array('active' => false, - 'text' => '' . - html_print_image("images/events_list.png", true, array("title" => __('Event list'))) . '', - 'operation' => true); +if (check_acl ($config["id_user"], 0, "EW") || check_acl ($config["id_user"], 0, "EM")) { + $buttons['view'] = array('active' => false, + 'text' => '' . + html_print_image("images/events_list.png", true, array("title" => __('Event list'))) . '', + 'operation' => true); -$buttons['filter'] = array('active' => false, - 'text' => '' . - html_print_image("images/filter_mc.png", true, array ("title" => __('Filter list'))) . ''); + $buttons['filter'] = array('active' => false, + 'text' => '' . + html_print_image("images/filter_mc.png", true, array ("title" => __('Filter list'))) . ''); +} if (check_acl ($config["id_user"], 0, "PM")) { $buttons['responses'] = array('active' => false, - 'text' => '' . - html_print_image("images/event_responses.png", true, array ("title" => __('Event responses'))) . ''); + 'text' => '' . + html_print_image("images/event_responses.png", true, array ("title" => __('Event responses'))) . ''); - if (! defined ('METACONSOLE')) { + if (!is_metaconsole()) { $buttons['fields'] = array('active' => false, - 'text' => '' . - html_print_image("images/custom_columns.png", true, array ("title" => __('Custom fields'))) . ''); + 'text' => '' . + html_print_image("images/custom_columns.png", true, array ("title" => __('Custom fields'))) . ''); } else { $buttons['fields'] = array('active' => false, - 'text' => '' . - html_print_image("images/custom_columns.png", true, array ("title" => __('Custom fields'))) . ''); + 'text' => '' . + html_print_image("images/custom_columns.png", true, array ("title" => __('Custom fields'))) . ''); } } diff --git a/pandora_console/godmode/gis_maps/configure_gis_map.php b/pandora_console/godmode/gis_maps/configure_gis_map.php index b8d40d0e5c..9276773510 100644 --- a/pandora_console/godmode/gis_maps/configure_gis_map.php +++ b/pandora_console/godmode/gis_maps/configure_gis_map.php @@ -17,8 +17,11 @@ global $config; check_login (); +$gis_w = check_acl ($config['id_user'], 0, 'MW'); +$gis_m = check_acl ($config['id_user'], 0, 'MM') +$access = ($gis_w == true) ? 'MW' : (($gis_m == true) ? 'MM' : 'MW'); -if (! check_acl ($config['id_user'], 0, "IW")) { +if (!$gis_w && !$gis_m ) { db_pandora_audit("ACL Violation", "Trying to access map builder"); require ("general/noaccess.php"); return; @@ -337,7 +340,7 @@ if (isset($invalidFields['map_connection_list'])) { $listConnectionTemp = db_get_all_rows_sql("SELECT id_tmap_connection, conection_name, group_id FROM tgis_map_connection"); $listConnection = array(); foreach ($listConnectionTemp as $connectionTemp) { - if (check_acl ($config["id_user"], $connectionTemp['group_id'], "IW")) { + if (check_acl ($config["id_user"], $connectionTemp['group_id'], "MW") || check_acl ($config["id_user"], $connectionTemp['group_id'], "MM")) { $listConnection[$connectionTemp['id_tmap_connection']] = $connectionTemp['conection_name']; } } @@ -356,7 +359,7 @@ $table->data[1][1] = " " . gis_add_conection_maps_in_form($map_connection_list) . "
"; $own_info = get_user_info($config['id_user']); -if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) +if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "MM")) $display_all_group = true; else $display_all_group = false; @@ -408,7 +411,7 @@ $table->data[1][1] = '
' . __('Show agents from group') . ': - ' . html_print_select_groups(false, 'IW', $display_all_group, 'layer_group_form', '-1', '', __('None'), '-1', true) . ' + ' . html_print_select_groups(false, $access, $display_all_group, 'layer_group_form', '-1', '', __('None'), '-1', true) . '
diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 51e6a0581e..fab10852a0 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -24,68 +24,73 @@ require_once ('include/functions_menu.php'); $menu_godmode = array (); $menu_godmode['class'] = 'godmode'; +$sub = array (); if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, "AD")) { - $menu_godmode["gagente"]["text"] = __('Resources'); - $menu_godmode["gagente"]["sec2"] = "godmode/agentes/modificar_agente"; - $menu_godmode["gagente"]["id"] = "god-resources"; - - $sub = array (); $sub['godmode/agentes/modificar_agente']['text'] = __('Manage agents'); $sub['godmode/agentes/modificar_agente']['id'] = 'Manage agents'; $sub["godmode/agentes/modificar_agente"]["subsecs"] = array( "godmode/agentes/configurar_agente"); +} + +if (check_acl ($config["id_user"], 0, "PM")) { + $sub["godmode/agentes/fields_manager"]["text"] = __('Custom fields'); + $sub["godmode/agentes/fields_manager"]["id"] = 'Custom fields'; - if (check_acl ($config['id_user'], 0, "AW")) { - if (check_acl ($config["id_user"], 0, "PM")) { - $sub["godmode/agentes/fields_manager"]["text"] = __('Custom fields'); - $sub["godmode/agentes/fields_manager"]["id"] = 'Custom fields'; - - $sub["godmode/modules/manage_nc_groups"]["text"] = __('Component groups'); - $sub["godmode/modules/manage_nc_groups"]["id"] = 'Component groups'; - // Category - $sub["godmode/category/category"]["text"] = __('Module categories'); - $sub["godmode/category/category"]["id"] = 'Module categories'; - $sub["godmode/category/category"]["subsecs"] = "godmode/category/edit_category"; - - $sub["godmode/modules/module_list"]["text"] = __('Module types'); - $sub["godmode/modules/module_list"]["id"] = 'Module types'; - - $sub["godmode/groups/modu_group_list"]["text"] = __('Module groups'); - $sub["godmode/groups/modu_group_list"]["id"] = 'Module groups'; - } - - if ($config['activate_netflow']) { - //Netflow - $sub["godmode/netflow/nf_edit"]["text"] = __('Netflow filters'); - $sub["godmode/netflow/nf_edit"]["id"] = 'Netflow filters'; - } + $sub["godmode/modules/manage_nc_groups"]["text"] = __('Component groups'); + $sub["godmode/modules/manage_nc_groups"]["id"] = 'Component groups'; + // Category + $sub["godmode/category/category"]["text"] = __('Module categories'); + $sub["godmode/category/category"]["id"] = 'Module categories'; + $sub["godmode/category/category"]["subsecs"] = "godmode/category/edit_category"; + + $sub["godmode/modules/module_list"]["text"] = __('Module types'); + $sub["godmode/modules/module_list"]["id"] = 'Module types'; + + $sub["godmode/groups/modu_group_list"]["text"] = __('Module groups'); + $sub["godmode/groups/modu_group_list"]["id"] = 'Module groups'; +} + +if (check_acl ($config['id_user'], 0, "AW")) { + //Netflow + if ($config['activate_netflow']) { + $sub["godmode/netflow/nf_edit"]["text"] = __('Netflow filters'); + $sub["godmode/netflow/nf_edit"]["id"] = 'Netflow filters'; } +} + +if (!empty($sub)) { + $menu_godmode["gagente"]["text"] = __('Resources'); + $menu_godmode["gagente"]["sec2"] = "godmode/agentes/modificar_agente"; + $menu_godmode["gagente"]["id"] = "god-resources"; $menu_godmode["gagente"]["sub"] = $sub; } +$sub = array (); +if (check_acl ($config['id_user'], 0, "AW")) { + $sub["godmode/groups/group_list"]["text"] = __('Manage agents groups'); + $sub["godmode/groups/group_list"]["id"] = 'Manage agents groups'; +} + +if (check_acl ($config['id_user'], 0, "PM")) { + // Tag + $sub["godmode/tag/tag"]["text"] = __('Module tags'); + $sub["godmode/tag/tag"]["id"] = 'Module tags'; + $sub["godmode/tag/tag"]["subsecs"] = "godmode/tag/edit_tag"; + + enterprise_hook ('enterprise_acl_submenu'); +} if (check_acl ($config['id_user'], 0, "UM")) { - $menu_godmode["gusuarios"]["text"] = __('Profiles'); - $menu_godmode["gusuarios"]["sec2"] = "godmode/users/user_list"; - $menu_godmode["gusuarios"]["id"] = "god-users"; - - $sub = array (); $sub['godmode/users/user_list']['text'] = __('Users management'); $sub['godmode/users/user_list']['id'] = 'Users management'; $sub['godmode/users/profile_list']['text'] = __('Profile management'); $sub['godmode/users/profile_list']['id'] = 'Profile management'; - $sub["godmode/groups/group_list"]["text"] = __('Manage agents groups'); - $sub["godmode/groups/group_list"]["id"] = 'Manage agents groups'; - - if (check_acl ($config['id_user'], 0, "PM")) { - // Tag - $sub["godmode/tag/tag"]["text"] = __('Module tags'); - $sub["godmode/tag/tag"]["id"] = 'Module tags'; - $sub["godmode/tag/tag"]["subsecs"] = "godmode/tag/edit_tag"; - - enterprise_hook ('enterprise_acl_submenu'); - } - +} + +if (!empty($sub)) { $menu_godmode["gusuarios"]["sub"] = $sub; + $menu_godmode["gusuarios"]["text"] = __('Profiles'); + $menu_godmode["gusuarios"]["sec2"] = "godmode/users/user_list"; + $menu_godmode["gusuarios"]["id"] = "god-users"; } $sub = array (); @@ -117,11 +122,12 @@ if (check_acl ($config['id_user'], 0, "AW")) { $sub2["godmode/massive/massive_operations&tab=massive_alerts"]["text"] = __('Alerts operations'); enterprise_hook('massivepolicies_submenu'); enterprise_hook('massivesnmp_submenu'); - enterprise_hook('massivesatellite_submenu'); $sub["gmassive"]["sub2"] = $sub2; } +enterprise_hook('massivesatellite_submenu'); + if (!empty($sub)) { $menu_godmode["gmodules"]["text"] = __('Configuration'); $menu_godmode["gmodules"]["sec2"] = "godmode/modules/manage_network_templates"; @@ -129,24 +135,23 @@ if (!empty($sub)) { $menu_godmode["gmodules"]["sub"] = $sub; } -if (check_acl ($config['id_user'], 0, "LM") || check_acl ($config['id_user'], 0, "AD")) { +if (check_acl ($config['id_user'], 0, "LW") || + check_acl ($config['id_user'], 0, "LM") || + check_acl ($config['id_user'], 0, "AD")) { $menu_godmode["galertas"]["text"] = __('Alerts'); $menu_godmode["galertas"]["sec2"] = "godmode/alerts/alert_list"; $menu_godmode["galertas"]["id"] = "god-alerts"; - + $sub = array (); - $sub["godmode/alerts/alert_list"]["text"] = __('List of Alerts'); - $sub["godmode/alerts/alert_list"]["id"] = 'List of Alerts'; + $sub["godmode/alerts/alert_list"]["text"] = __('List of Alerts'); + $sub["godmode/alerts/alert_list"]["id"] = 'List of Alerts'; if (check_acl ($config['id_user'], 0, "LM")) { $sub["godmode/alerts/alert_templates"]["text"] = __('Templates'); $sub["godmode/alerts/alert_templates"]["id"] = 'Templates'; $sub["godmode/alerts/alert_actions"]["text"] = __('Actions'); $sub["godmode/alerts/alert_actions"]["id"] = 'Actions'; - - if (check_acl ($config['id_user'], 0, "PM")) { - $sub["godmode/alerts/alert_commands"]["text"] = __('Commands'); - $sub["godmode/alerts/alert_commands"]["id"] = 'Commands'; - } + $sub["godmode/alerts/alert_commands"]["text"] = __('Commands'); + $sub["godmode/alerts/alert_commands"]["id"] = 'Commands'; $sub["godmode/alerts/alert_special_days"]["text"] = __('Special days list'); $sub["godmode/alerts/alert_special_days"]["id"] = __('Special days list'); enterprise_hook('eventalerts_submenu'); @@ -156,41 +161,45 @@ if (check_acl ($config['id_user'], 0, "LM") || check_acl ($config['id_user'], 0, $menu_godmode["galertas"]["sub"] = $sub; } -if (check_acl ($config['id_user'], 0, "EW")) { - // Manage events +// Manage events +$sub = array (); +if (check_acl ($config['id_user'], 0, "EW") || check_acl ($config['id_user'], 0, "EM")) { + // Custom event fields + $sub["godmode/events/events&section=filter"]["text"] = __('Event filters'); + $sub["godmode/events/events&section=filter"]["id"] = 'Event filters'; +} + +if (check_acl ($config['id_user'], 0, "PM")) { + $sub["godmode/events/events&section=fields"]["text"] = __('Custom events'); + $sub["godmode/events/events&section=fields"]["id"] = 'Custom events'; + $sub["godmode/events/events&section=responses"]["text"] = __('Event responses'); + $sub["godmode/events/events&section=responses"]["id"] = 'Event responses'; +} + +if (!empty($sub)) { $menu_godmode["geventos"]["text"] = __('Events'); $menu_godmode["geventos"]["sec2"] = "godmode/events/events&section=filter"; $menu_godmode["geventos"]["id"] = "god-events"; - - // Custom event fields - $sub = array (); - $sub["godmode/events/events&section=filter"]["text"] = __('Event filters'); - $sub["godmode/events/events&section=filter"]["id"] = 'Event filters'; - - if (check_acl ($config['id_user'], 0, "PM")) { - $sub["godmode/events/events&section=fields"]["text"] = __('Custom events'); - $sub["godmode/events/events&section=fields"]["id"] = 'Custom events'; - $sub["godmode/events/events&section=responses"]["text"] = __('Event responses'); - $sub["godmode/events/events&section=responses"]["id"] = 'Event responses'; - } - $menu_godmode["geventos"]["sub"] = $sub; } -if (check_acl ($config['id_user'], 0, "AW")) { + +if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, "PM")) { // Servers $menu_godmode["gservers"]["text"] = __('Servers'); $menu_godmode["gservers"]["sec2"] = "godmode/servers/modificar_server"; $menu_godmode["gservers"]["id"] = "god-servers"; $sub = array (); - $sub["godmode/servers/modificar_server"]["text"] = __('Manage servers'); - $sub["godmode/servers/modificar_server"]["id"] = 'Manage servers'; - $sub["godmode/servers/manage_recontask"]["text"] = __('Recon task'); - $sub["godmode/servers/manage_recontask"]["id"] = 'Recon task'; - + if (check_acl ($config['id_user'], 0, "AW")) { + $sub["godmode/servers/modificar_server"]["text"] = __('Manage servers'); + $sub["godmode/servers/modificar_server"]["id"] = 'Manage servers'; + } //This subtabs are only for Pandora Admin if (check_acl ($config['id_user'], 0, "PM")) { + $sub["godmode/servers/manage_recontask"]["text"] = __('Recon task'); + $sub["godmode/servers/manage_recontask"]["id"] = 'Recon task'; + $sub["godmode/servers/plugin"]["text"] = __('Plugins'); $sub["godmode/servers/plugin"]["id"] = 'Plugins'; @@ -282,7 +291,7 @@ if (check_acl ($config['id_user'], 0, "PM") || check_acl ($config['id_user'], 0, $sub["godmode/setup/file_manager"]["id"] = 'File manager'; } - if (check_acl ($config['id_user'], 0, "DM")) { + if (check_acl ($config['id_user'], 0, "DM") || check_acl ($config['id_user'], 0, "PM")) { $sub["gdbman"]["text"] = __('DB maintenance'); $sub["gdbman"]["id"] = 'DB maintenance'; $sub["gdbman"]["type"] = "direct"; @@ -373,10 +382,8 @@ if (is_array ($config['extensions'])) { } - if (!empty($sub2)) + if (!empty($sub2)) { $sub["godmode/extensions"]["sub2"] = $sub2; - - if (!empty($sub)) { $sub["godmode/extensions"]["text"] = __('Extension manager'); $sub["godmode/extensions"]["id"] = 'Extension manager'; $submenu = array_merge($menu_godmode["gextensions"]["sub"],$sub); diff --git a/pandora_console/godmode/reporting/graph_builder.graph_editor.php b/pandora_console/godmode/reporting/graph_builder.graph_editor.php index d54c85406f..745b91ed15 100644 --- a/pandora_console/godmode/reporting/graph_builder.graph_editor.php +++ b/pandora_console/godmode/reporting/graph_builder.graph_editor.php @@ -17,7 +17,10 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "RW")) { +$report_w = check_acl ($config['id_user'], 0, "RW"); +$report_m = check_acl ($config['id_user'], 0, "RM"); + +if (!$report_w && !$report_m ) { db_pandora_audit("ACL Violation", "Trying to access graph builder"); include ("general/noaccess.php"); @@ -129,7 +132,6 @@ if (count($module_array) > 0) { } //Configuration form - echo ''; echo ""; @@ -137,7 +139,9 @@ echo "".__('Filter group').""; echo ""; -echo ""; +echo ""; echo ""; echo ""; echo ""; diff --git a/pandora_console/godmode/reporting/graph_builder.main.php b/pandora_console/godmode/reporting/graph_builder.main.php index 1464a0f47b..3de1dbd138 100644 --- a/pandora_console/godmode/reporting/graph_builder.main.php +++ b/pandora_console/godmode/reporting/graph_builder.main.php @@ -48,7 +48,7 @@ if (is_ajax ()) { check_login (); -if (! check_acl ($config['id_user'], 0, "RW")) { +if (! check_acl ($config['id_user'], 0, "RW") && ! check_acl ($config['id_user'], 0, "RM")) { db_pandora_audit("ACL Violation", "Trying to access graph builder"); include ("general/noaccess.php"); @@ -111,9 +111,12 @@ if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) else $return_all_groups = false; -echo ""; +echo ""; echo ""; echo ""; echo "
".html_print_select(groups_get_all(), 'group', '', "filterByGroup($('#group').val());", __('All'), '0', true)."".html_print_select_groups($config['id_user'], ($report_w == true) ? 'RW' : (($report_m == true) ? 'RM' : 'RW'), + true, 'group', '', 'filterByGroup($(\'#group\').val());', + '', 0, true)."
".__('Agents')."".__('Group')."" . - html_print_select_groups($config['id_user'], "AR", $return_all_groups, 'graph_id_group', $id_group, '', '', '', true) . - "
".__('Group').""; + if (check_acl ($config['id_user'], 0, "RW")) + echo html_print_select_groups($config['id_user'], 'RW', $return_all_groups, 'graph_id_group', $id_group, '', '', '', true); + elseif (check_acl ($config['id_user'], 0, "RM")) + echo html_print_select_groups($config['id_user'], 'RM', $return_all_groups, 'graph_id_group', $id_group, '', '', '', true); +echo "
".__('Description')."