diff --git a/pandora_console/godmode/agentes/module_manager_editor_network.php b/pandora_console/godmode/agentes/module_manager_editor_network.php index f509b104b4..091af8c5cf 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_network.php +++ b/pandora_console/godmode/agentes/module_manager_editor_network.php @@ -464,7 +464,7 @@ $data[1] = html_print_select( $disabledBecauseInPolicy ); -$data[1] .= '

'.__('Manage credentials').''; +$data[1] .= '

'.__('Manage credentials').''; $array_os = [ 'inherited' => __('Inherited'), diff --git a/pandora_console/godmode/groups/group_list.php b/pandora_console/godmode/groups/group_list.php index ddb5224590..57d82f57d9 100644 --- a/pandora_console/godmode/groups/group_list.php +++ b/pandora_console/godmode/groups/group_list.php @@ -248,17 +248,30 @@ if (is_ajax()) { return; } -if (! check_acl($config['id_user'], 0, 'PM')) { + +$tab = (string) get_parameter('tab', 'groups'); + +if ($tab != 'credbox' && ! check_acl($config['id_user'], 0, 'PM')) { db_pandora_audit( 'ACL Violation', 'Trying to access Group Management' ); include 'general/noaccess.php'; return; +} else if ($tab == 'credbox' + && !check_acl($config['id_user'], 0, 'UM') + && !check_acl($config['id_user'], 0, 'PM') +) { + db_pandora_audit( + 'ACL Violation', + 'Trying to access Credential Store' + ); + include 'general/noaccess.php'; + return; } $sec = defined('METACONSOLE') ? 'advanced' : 'gagente'; -$url_credbox = 'index.php?sec='.$sec.'&sec2=godmode/groups/group_list&tab=credbox'; +$url_credbox = 'index.php?sec=gmodules&sec2=godmode/groups/group_list&tab=credbox'; $url_tree = 'index.php?sec='.$sec.'&sec2=godmode/groups/group_list&tab=tree'; $url_groups = 'index.php?sec='.$sec.'&sec2=godmode/groups/group_list&tab=groups'; @@ -295,8 +308,6 @@ $buttons['credbox'] = [ ).'', ]; -$tab = (string) get_parameter('tab', 'groups'); - $title = __('Groups defined in %s', get_product_name()); // Marks correct tab. switch ($tab) { diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 6eb67f1d09..397f153935 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -197,6 +197,11 @@ if (check_acl($config['id_user'], 0, 'AW')) { $sub['gmassive']['sub2'] = $sub2; } +if (check_acl($config['id_user'], 0, 'PM') || check_acl($config['id_user'], 0, 'UM')) { + $sub['godmode/groups/group_list&tab=credbox']['text'] = __('Credential store'); + $sub['godmode/groups/group_list&tab=credbox']['id'] = 'credential store'; +} + if (!empty($sub)) { $menu_godmode['gmodules']['text'] = __('Configuration'); $menu_godmode['gmodules']['sec2'] = 'godmode/modules/manage_network_templates'; diff --git a/pandora_console/godmode/wizards/HostDevices.class.php b/pandora_console/godmode/wizards/HostDevices.class.php index 7abfe15d5d..cf28dee942 100755 --- a/pandora_console/godmode/wizards/HostDevices.class.php +++ b/pandora_console/godmode/wizards/HostDevices.class.php @@ -1429,7 +1429,7 @@ class HostDevices extends Wizard $available_keys = CredentialStore::getKeys('CUSTOM'); if (check_acl($config['id_user'], 0, 'PM')) { $link_to_cs = ''; $link_to_cs .= __('No credentials available').', '; $link_to_cs .= strtolower(__('Manage credentials')).''; diff --git a/pandora_console/include/class/CredentialStore.class.php b/pandora_console/include/class/CredentialStore.class.php index d14314a6b4..51471f6029 100644 --- a/pandora_console/include/class/CredentialStore.class.php +++ b/pandora_console/include/class/CredentialStore.class.php @@ -451,6 +451,18 @@ class CredentialStore extends Wizard $start = get_parameter('start', 0); $length = get_parameter('length', $config['block_size']); $order = get_datatable_order(true); + if ((bool) users_is_admin() === false) { + $all = users_can_manage_group_all('UM'); + + $filter['group_list'] = array_keys( + users_get_groups( + $config['id_user'], + 'UM', + (bool) $all + ) + ); + } + try { ob_start(); diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index 118ef6641c..fa9f7fae4d 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -55,6 +55,11 @@ function menu_print_menu(&$menu) } else if ($sec2 == 'godmode/servers/discovery') { $wiz = (string) get_parameter('wiz'); $sec2 = 'godmode/servers/discovery&wiz='.$wiz; + } else if ($sec2 == 'godmode/groups/group_list') { + $tab = (string) get_parameter('tab'); + if ($tab === 'credbox') { + $sec2 = 'godmode/groups/group_list&tab='.$tab; + } } else { $sec2 = (string) get_parameter('sec2'); } @@ -147,6 +152,7 @@ function menu_print_menu(&$menu) $first_sub_sec2 = ''; foreach ($main['sub'] as $subsec2 => $sub) { + // hd($sub, true); $count_sub++; // Init some variables.