OwlCyberSecurity - MANAGER
Edit File: Action.php
<?php /** * Set the ajax action and call for WordPress * * @file The Actions file * @package HMWP/Action * @since 4.0.0 */ defined( 'ABSPATH' ) || die( 'Cheatin\' uh?' ); class HMWP_Classes_Action extends HMWP_Classes_FrontController { /** * * All the registered actions * * @var array with all form and ajax actions */ var $actions = array(); /** * The hookAjax is loaded as custom hook in hookController class * * @return void * @throws Exception */ public function hookInit() { if ( HMWP_Classes_Tools::isAjax() ) { $this->getActions( true ); } } /** * The hookSubmit is loaded when action si posted * * @return void * @throws Exception */ function hookMenu() { /* Only if post */ if ( ! HMWP_Classes_Tools::isAjax() ) { $this->getActions(); } } /** * Hook the Multisite Menu * * @throws Exception */ function hookMultisiteMenu() { /* Only if post */ if ( ! HMWP_Classes_Tools::isAjax() ) { $this->getActions(); } } /** * Get the list with all the plugin actions * * @return array * @since 6.1.1 */ public function getActionsTable() { return array( array( "name" => "HMWP_Controllers_Settings", "actions" => array( "action" => array( "hmwp_settings", "hmwp_tweakssettings", "hmwp_confirm", "hmwp_newpluginschange", "hmwp_abort", "hmwp_ignore_errors", "hmwp_restore_settings", "hmwp_manualrewrite", "hmwp_mappsettings", "hmwp_firewall", "hmwp_advsettings", "hmwp_devsettings", "hmwp_devdownload", "hmwp_changepathsincache", "hmwp_savecachepath", "hmwp_backup", "hmwp_restore", "hmwp_rollback", "hmwp_rollback_stable", "hmwp_download_settings", "hmwp_advanced_install", "hmwp_pause_enable", "hmwp_pause_disable", "hmwp_update_product_name", ) ), ), array( "name" => "HMWP_Controllers_Overview", "actions" => array( "action" => array( "hmwp_feature_save" ) ), ), array( "name" => "HMWP_Controllers_SecurityCheck", "actions" => array( "action" => array( "hmwp_securitycheck", "hmwp_frontendcheck", "hmwp_fixsettings", "hmwp_fixconfig", "hmwp_securityexclude", "hmwp_resetexclude" ) ), ), array( "name" => "HMWP_Controllers_Brute", "actions" => array( "action" => array( "hmwp_brutesettings", "hmwp_google_enterprise", "hmwp_blockedips", "hmwp_deleteip", "hmwp_deleteallips" ) ), ), array( "name" => "HMWP_Controllers_Log", "actions" => array( "action" => array( "hmwp_logsettings" ) ), ), array( "name" => "HMWP_Controllers_Widget", "actions" => array( "action" => "hmwp_widget_securitycheck" ), ), array( "name" => "HMWP_Controllers_Connect", "actions" => array( "action" => array( "hmwp_connect", "hmwp_reconnect", "hmwp_dont_connect", ) ), ), array( "name" => "HMWP_Classes_Error", "actions" => array( "action" => array( "hmwp_ignoreerror" ) ), ), ); } /** * Get all actions from config.json in core directory and add them in the WP * * @param bool $ajax * * @throws Exception * @since 4.0.0 */ public function getActions( $ajax = false ) { //Proceed only if logged in and in dashboard if ( ! is_admin() && ! is_network_admin() ) { return; } $this->actions = array(); $action = HMWP_Classes_Tools::getValue( 'action' ); $nonce = HMWP_Classes_Tools::getValue( 'hmwp_nonce' ); if ( $action == '' || $nonce == '' ) { return; } //Get all the plugin actions $actions = $this->getActionsTable(); foreach ( $actions as $block ) { //If there is a single action if ( isset( $block['actions']['action'] ) ) { //If there are more actions for the current block if ( ! is_array( $block['actions']['action'] ) ) { //Add the action in the actions array if ( $block['actions']['action'] == $action ) { $this->actions[] = array( 'class' => $block['name'] ); } } else { //If there are more actions for the current block foreach ( $block['actions']['action'] as $value ) { //Add the actions in the actions array if ( $value == $action ) { $this->actions[] = array( 'class' => $block['name'] ); } } } } } //Validate referer based on the call type if ( $ajax ) { check_ajax_referer( $action, 'hmwp_nonce' ); } else { check_admin_referer( $action, 'hmwp_nonce' ); } //Add the actions in WP. foreach ( $this->actions as $actions ) { HMWP_Classes_ObjController::getClass( $actions['class'] )->action(); } } }