array( 'title' => __('Dashboard', 'all-in-one-wp-security-and-firewall'), 'render_callback' => array($this, 'render_dashboard'), ), 'locked-ip' => array( 'title' => __('Locked IP addresses', 'all-in-one-wp-security-and-firewall'), 'render_callback' => array($this, 'render_locked_ip'), ), 'permanent-block' => array( 'title' => __('Permanent block list', 'all-in-one-wp-security-and-firewall'), 'render_callback' => array($this, 'render_permanent_block'), ), 'audit-logs' => array( 'title' => __('Audit logs', 'all-in-one-wp-security-and-firewall'), 'render_callback' => array($this, 'render_audit_logs'), ), 'debug-logs' => array( 'title' => __('Debug logs', 'all-in-one-wp-security-and-firewall'), 'render_callback' => array($this, 'render_debug_logs'), ), 'premium-upgrade' => array( 'title' => __('Premium upgrade', 'all-in-one-wp-security-and-firewall'), 'render_callback' => array($this, 'render_premium_upgrade_tab'), 'display_condition_callback' => function() { return !AIOWPSecurity_Utility_Permissions::is_premium_installed(); } ), ); $this->menu_tabs = array_filter($menu_tabs, array($this, 'should_display_tab')); } /** * Renders the submenu's dashboard tab * * @return Void */ protected function render_dashboard() { /** Load WordPress dashboard API */ require_once(ABSPATH . 'wp-admin/includes/dashboard.php'); $this->wp_dashboard_setup(); wp_enqueue_script('dashboard'); if (wp_is_mobile()) wp_enqueue_script( 'jquery-touch-punch' ); ?>
wp_dashboard(); ?>
delete_lockout_records(strip_tags($_REQUEST['lockout_id'])); } if ('unlock_ip' == $_REQUEST['action']) { // Unlock link was clicked for a row in list table $locked_ip_list->unlock_ip_range(strip_tags($_REQUEST['lockout_id'])); } } $aio_wp_security->include_template('wp-admin/dashboard/locked-ip.php', false, array('locked_ip_list' => $locked_ip_list)); } /** * Renders the submenu's permanent block tab * * @return Void */ protected function render_permanent_block() { global $aio_wp_security, $wpdb; include_once 'wp-security-list-permanent-blocked-ip.php'; // For rendering the AIOWPSecurity_List_Table $blocked_ip_list = new AIOWPSecurity_List_Blocked_IP(); // For rendering the AIOWPSecurity_List_Table if (isset($_REQUEST['action'])) { // Do list table form row action tasks if ($_REQUEST['action'] == 'unblock_ip') { // Unblock link was clicked for a row in list table $blocked_ip_list->unblock_ip_address(strip_tags($_REQUEST['blocked_id'])); } } $aio_wp_security->include_template('wp-admin/dashboard/permanent-block.php', false, array('blocked_ip_list' => $blocked_ip_list)); } /** * Renders the submenu's audit logs tab * * @return void */ protected function render_audit_logs() { global $aio_wp_security; // Needed for rendering the audit log table include_once 'wp-security-list-audit.php'; $audit_log_list = new AIOWPSecurity_List_Audit_Log(); if (isset($_REQUEST['action'])) { // Do list table form row action tasks if ('delete_audit_log' == $_REQUEST['action']) { // Delete link was clicked for a row in list table $nonce = isset($_REQUEST['aiowps_nonce']) ? $_REQUEST['aiowps_nonce'] : ''; if (!isset($nonce) || !wp_verify_nonce($nonce, 'delete_audit_log')) { $aio_wp_security->debug_logger->log_debug("Nonce check failed for delete selected Audit event logs operation.", 4); die(__('Nonce check failed for delete selected Audit event logs operation.','all-in-one-wp-security-and-firewall')); } $audit_log_list->delete_audit_event_records(absint($_REQUEST['id'])); } } $aio_wp_security->include_template('wp-admin/dashboard/audit-logs.php', false, array('audit_log_list' => $audit_log_list)); } /** * Renders the submenu's debug logs tab * * @return void */ protected function render_debug_logs() { // Needed for rendering the debug log table include_once 'wp-security-list-debug.php'; $debug_log_list = new AIOWPSecurity_List_Debug_Log(); global $wpdb, $aio_wp_security; // Handles clearing the debug logs if (isset($_POST['aiowpsec_clear_logs']) && isset($_POST['_wpnonce'])) { if (wp_verify_nonce($_POST['_wpnonce'], 'aiowpsec_clear_debug_logs')) { $ret = $aio_wp_security->debug_logger->clear_logs(); if (is_wp_error($ret)) { ?>

get_error_message()); ?>

get_error_data()); ?>

include_template('wp-admin/dashboard/debug-logs.php', false, array('debug_log_list' => $debug_log_list)); } /** * Renders the submenu's premium-upgrade tab body. * * @return Void */ protected function render_premium_upgrade_tab() { global $aio_wp_security; $enqueue_version = (defined('WP_DEBUG') && WP_DEBUG) ? AIO_WP_SECURITY_VERSION.'.'.time() : AIO_WP_SECURITY_VERSION; wp_enqueue_style('aiowpsec-admin-premium-upgrade-css', AIO_WP_SECURITY_URL.'/css/wp-security-premium-upgrade.css', array(), $enqueue_version); echo '
'; $aio_wp_security->include_template('wp-admin/dashboard/may-also-like.php'); echo '
'; } private function wp_dashboard() { $screen = get_current_screen(); $columns = absint( $screen->get_columns() ); $columns_css = ''; if ( $columns ) { $columns_css = " columns-$columns"; } ?>
id, 'normal', '' ); ?>
id, 'side', '' ); ?>
id, 'column3', '' ); ?>
id, 'column4', '' ); ?>
configs->get_value('aiowps_enable_brute_force_attack_prevention') == '1' || $aio_wp_security->configs->get_value('aiowps_enable_rename_login_page') == '1') { wp_add_dashboard_widget('brute_force', __('Brute force prevention login page'), array($this, 'widget_brute_force')); } wp_add_dashboard_widget('logged_in_users', __('Logged in users', 'all-in-one-wp-security-and-firewall'), array($this, 'widget_logged_in_users')); wp_add_dashboard_widget('locked_ip_addresses', __('Locked IP addresses', 'all-in-one-wp-security-and-firewall'), array($this, 'widget_locked_ip_addresses')); do_action( 'aiowps_dashboard_setup' ); $dashboard_widgets = apply_filters( 'aiowps_dashboard_widgets', array() ); foreach ( $dashboard_widgets as $widget_id ) { $name = empty( $wp_registered_widgets[$widget_id]['all_link'] ) ? $wp_registered_widgets[$widget_id]['name'] : $wp_registered_widgets[$widget_id]['name'] . " " . __('View all') . ''; wp_add_dashboard_widget( $widget_id, $name, $wp_registered_widgets[$widget_id]['callback'], $wp_registered_widget_controls[$widget_id]['callback'] ); } } public function widget_security_strength_meter() { global $aiowps_feature_mgr, $aio_wp_security; $total_site_security_points = $aiowps_feature_mgr->get_total_site_points(); $total_security_points_achievable = $aiowps_feature_mgr->get_total_achievable_points(); ?>
get_total_site_points(); $total_security_points_achievable = $feature_mgr->get_total_achievable_points(); $feature_items = $feature_mgr->feature_items; $pt_src_chart_data = ""; $pt_src_chart_data .= "['Feature Name', 'Points'],"; foreach ($feature_items as $item) { if ($item->feature_status == $feature_mgr->feature_active) { $pt_src_chart_data .= "['" . $item->feature_name . "', " . $item->item_points . "],"; } } ?>

Twitter

Team UpdraftPlus

feature_items; $username_admin_feature = $aiowps_feature_mgr->get_feature_item_by_id("user-accounts-change-admin-user"); echo '
'; echo '
' . __('Admin username', 'all-in-one-wp-security-and-firewall') . '
'; echo ''; echo '
'; if ($username_admin_feature->feature_status == $aiowps_feature_mgr->feature_active) { echo '
On
'; echo '
Off
'; } else { echo '
On
'; echo '
Off
'; } echo '
'; echo '
'; $login_lockdown_feature = $aiowps_feature_mgr->get_feature_item_by_id("user-login-login-lockdown"); echo '
'; echo '
' . __('Login lockout', 'all-in-one-wp-security-and-firewall') . '
'; echo ''; echo '
'; if ($login_lockdown_feature->feature_status == $aiowps_feature_mgr->feature_active) { echo '
On
'; echo '
Off
'; } else { echo '
On
'; echo '
Off
'; } echo '
'; echo '
'; $filesystem_feature = $aiowps_feature_mgr->get_feature_item_by_id("filesystem-file-permissions"); echo '
'; echo '
' . __('File permission', 'all-in-one-wp-security-and-firewall') . '
'; echo ''; echo '
'; if ($filesystem_feature->feature_status == $aiowps_feature_mgr->feature_active) { echo '
On
'; echo '
Off
'; } else { echo '
On
'; echo '
Off
'; } echo '
'; echo '
'; $basic_firewall_feature = $aiowps_feature_mgr->get_feature_item_by_id("firewall-basic-rules"); echo '
'; echo '
' . __('Basic firewall', 'all-in-one-wp-security-and-firewall') . '
'; echo ''; echo '
'; if ($basic_firewall_feature->feature_status == $aiowps_feature_mgr->feature_active) { echo '
On
'; echo '
Off
'; } else { echo '
On
'; echo '
Off
'; } echo '
'; echo '
'; } public function widget_last_5_logins() { global $wpdb; $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY; /* -- Ordering parameters -- */ //Parameters that are going to be used to order the result isset($_GET["orderby"]) ? $orderby = strip_tags($_GET["orderby"]) : $orderby = ''; isset($_GET["order"]) ? $order = strip_tags($_GET["order"]) : $order = ''; $orderby = !empty($orderby) ? $orderby : 'login_date'; $order = !empty($order) ? $order : 'DESC'; $data = $wpdb->get_results($wpdb->prepare("SELECT * FROM $login_activity_table ORDER BY login_date DESC LIMIT %d", 5), ARRAY_A); //Get the last 5 records if (null == $data) { echo '

' . __('No data found.', 'all-in-one-wp-security-and-firewall') . '

'; } else { $login_summary_table = ''; echo '

' . __('Last 5 logins summary:', 'all-in-one-wp-security-and-firewall') . '

'; $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; foreach ($data as $entry) { $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; $login_summary_table .= ''; } $login_summary_table .= '
' . __('User', 'all-in-one-wp-security-and-firewall') . '' . __('Date', 'all-in-one-wp-security-and-firewall') . '' . __('IP', 'all-in-one-wp-security-and-firewall') . '
' . $entry['user_login'] . '' . get_date_from_gmt(mysql2date('Y-m-d H:i:s', $entry['login_date']), get_option('date_format').' '.get_option('time_format')) . '' . $entry['login_ip'] . '
'; echo $login_summary_table; } echo '
'; } public function widget_maintenance_mode_status() { global $aio_wp_security; if ($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1') { echo '

' . __('Maintenance mode is currently enabled. Remember to turn it off when you are done', 'all-in-one-wp-security-and-firewall') . '

'; } else { echo '

' . __('Maintenance mode is currently off.', 'all-in-one-wp-security-and-firewall') . '

'; } echo '
'; echo '
' . __('Maintenance mode', 'all-in-one-wp-security-and-firewall') . '
'; echo ''; echo '
'; if ($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1') { // Maintenance mode is enabled echo '
On
'; // If enabled show red by usign the "off" class echo '
Off
'; } else { echo '
On
'; echo '
Off
'; } echo '
'; echo '
'; } public function widget_brute_force() { global $aio_wp_security; if ($aio_wp_security->configs->get_value('aiowps_enable_brute_force_attack_prevention') == '1') { $brute_force_login_feature_link = '' . __('Cookie-based brute force', 'all-in-one-wp-security-and-firewall') . ''; $brute_force_feature_secret_word = $aio_wp_security->configs->get_value('aiowps_brute_force_secret_word'); echo '
'; echo '

' . sprintf(__('The %s feature is currently active.', 'all-in-one-wp-security-and-firewall'), $brute_force_login_feature_link) . '

'; echo '

' . __('Your new WordPress login URL is now:', 'all-in-one-wp-security-and-firewall') . '

'; echo '

' . AIOWPSEC_WP_URL . '/?' . $brute_force_feature_secret_word . '=1

'; echo '
'; //yellow box div echo '
'; }// End if statement for Cookie Based Brute Prevention box // Insert Rename Login Page feature box if this feature is active if ($aio_wp_security->configs->get_value('aiowps_enable_rename_login_page') == '1') { if (get_option('permalink_structure')) { $home_url = trailingslashit(home_url()); } else { $home_url = trailingslashit(home_url()) . '?'; } $rename_login_feature_link = '' . __('Rename login page', 'all-in-one-wp-security-and-firewall') . ''; echo '
'; echo '

' . sprintf(__('The %s feature is currently active.', 'all-in-one-wp-security-and-firewall'), $rename_login_feature_link) . '

'; echo '

' . __('Your new WordPress login URL is now:', 'all-in-one-wp-security-and-firewall') . '

'; echo '

' . $home_url . $aio_wp_security->configs->get_value('aiowps_login_page_slug') . '

'; echo '
'; //yellow box div echo '
'; } // End if statement for Rename Login box } public function widget_logged_in_users() { $users_online_link = ''.__('Logged in users', 'all-in-one-wp-security-and-firewall').''; // default display messages $multiple_users_info_msg = __('Number of users currently logged into your site (including you) is:', 'all-in-one-wp-security-and-firewall'); $single_user_info_msg = __('There are no other users currently logged in.', 'all-in-one-wp-security-and-firewall'); if (is_multisite()) { $current_blog_id = get_current_blog_id(); $is_main = is_main_site($current_blog_id); if(empty($is_main)) { // subsite - only get logged in users for this blog_id $logged_in_users = AIOWPSecurity_User_Login::get_subsite_logged_in_users($current_blog_id); } else { // main site - get sitewide users $logged_in_users = get_site_transient('users_online'); // If viewing AIOS from multisite main network dashboard then display a different message $multiple_users_info_msg = __('Number of users currently logged in site-wide (including you) is:', 'all-in-one-wp-security-and-firewall'); $single_user_info_msg = __('There are no other site-wide users currently logged in.', 'all-in-one-wp-security-and-firewall'); } } else { $logged_in_users = get_transient('users_online'); } if (empty($logged_in_users)) { $num_users = 0; } else { $num_users = count($logged_in_users); } if ($num_users > 1) { echo '

' . $multiple_users_info_msg . ' ' . $num_users . '

'; $info_msg = '

' . sprintf(__('Go to the %s menu to see more details', 'all-in-one-wp-security-and-firewall'), $users_online_link) . '

'; echo $info_msg . '
'; } else { echo '

' . $single_user_info_msg . '

'; } } public function widget_locked_ip_addresses() { $locked_ips_link = 'Locked IP Addresses'; $locked_ips = AIOWPSecurity_Utility::get_locked_ips(); if (false === $locked_ips) { echo '

' . __('There are no IP addresses currently locked out.', 'all-in-one-wp-security-and-firewall') . '

'; } else { $num_ips = count($locked_ips); echo '

' . __('Number of temporarily locked out IP addresses: ', 'all-in-one-wp-security-and-firewall') . ' ' . $num_ips . '

'; $info_msg = '

' . sprintf(__('Go to the %s menu to see more details', 'all-in-one-wp-security-and-firewall'), $locked_ips_link) . '

'; echo $info_msg . '
'; } } } //end class