diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index 57ba14568b..a2983b8841 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,9 @@ +2013-04-25 Ramon Novoa + + * images/cross_double.png, + godmode/users/user_list.php: Added support to delete users from all + consoles to the metaconsole. Fixes bug #3607619. + 2013-04-25 Miguel de Dios * godmode/events/custom_events.php, diff --git a/pandora_console/godmode/users/user_list.php b/pandora_console/godmode/users/user_list.php index 699867dc6e..98770659b7 100644 --- a/pandora_console/godmode/users/user_list.php +++ b/pandora_console/godmode/users/user_list.php @@ -21,6 +21,7 @@ check_login (); include_once($config['homedir'] . "/include/functions_profile.php"); include_once ($config['homedir'].'/include/functions_users.php'); require_once ($config['homedir'] . '/include/functions_groups.php'); +enterprise_include_once ('include/functions_metaconsole.php'); enterprise_include_once ('meta/include/functions_users_meta.php'); if (! check_acl ($config['id_user'], 0, "UM")) { @@ -135,17 +136,48 @@ if (isset ($_GET["user_del"])) { //delete user if ($result) { users_save_logout($user_row, true); - } - db_pandora_audit("User management", - "Deleted user ".io_safe_input($id_user)); + db_pandora_audit("User management", + __("Deleted user %s", io_safe_input($id_user))); + } ui_print_result_message ($result, __('Successfully deleted'), __('There was a problem deleting the user')); + + // Delete the user in all the consoles + if (defined ('METACONSOLE') && isset ($_GET["delete_all"])) { + + $servers = metaconsole_get_servers(); + foreach ($servers as $server) { + + // Connect to the remote console + metaconsole_connect($server); + + // Delete the user + $result = delete_user ($id_user); + if ($result) { + db_pandora_audit("User management", + __("Deleted user %s from metaconsole", io_safe_input($id_user))); + } + + // Restore the db connection + metaconsole_restore_db(); + + // Log to the metaconsole too + if ($result) { + db_pandora_audit("User management", + __("Deleted user %s from %s", io_safe_input($id_user), io_safe_input($server['server_name']))); + } + ui_print_result_message ($result, + __('Successfully deleted from %s', io_safe_input($server['server_name'])), + __('There was a problem deleting the user from %s', io_safe_input($server['server_name']))); + } + } } - else + else { ui_print_error_message (__('There was a problem deleting the user')); + } } elseif (isset ($_GET["profile_del"])) { //delete profile $id_profile = (int) get_parameter_post ("delete_profile"); @@ -307,6 +339,9 @@ foreach ($info as $user_id => $user_info) { $data[5] .= ''.html_print_image('images/config.png', true, array('title' => __('Edit'))).''; if ($config["admin_can_delete_user"] && $user_info['id_user'] != $config['id_user']) { $data[5] .= "".html_print_image('images/cross.png', true, array ('title' => __('Delete'), 'onclick' => "if (! confirm ('" .__('Deleting User'). " ". $user_info['id_user'] . ". " . __('Are you sure?') ."')) return false")).""; + if (defined('METACONSOLE')) { + $data[5] .= "".html_print_image('images/cross_double.png', true, array ('title' => __('Delete from all consoles'), 'onclick' => "if (! confirm ('" .__('Deleting User %s from all consoles', $user_info['id_user']) . ". " . __('Are you sure?') ."')) return false")).""; + } } else { $data[5] .= ''; //Delete button not in this mode diff --git a/pandora_console/images/cross_double.png b/pandora_console/images/cross_double.png new file mode 100644 index 0000000000..72c50fbd85 Binary files /dev/null and b/pandora_console/images/cross_double.png differ