Plugin Directory

Changeset 2655897


Ignore:
Timestamp:
01/11/2022 02:46:12 PM (4 years ago)
Author:
guardgiant
Message:

Updating version 2.2.4

Location:
guardgiant/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • guardgiant/trunk/README.txt

    r2635026 r2655897  
    33Tags: Brute Force, Brute Force Protection, login security, login protection, limit login, stop brute force attacks, brute force login protection
    44Requires at least: 3.3
    5 Tested up to: 5.8
     5Tested up to: 5.9
    66Stable tag: 2.2.4
    77Requires PHP: 5.4
  • guardgiant/trunk/admin/class-guardgiant-admin.php

    r2448416 r2655897  
    3333        $this->version = $version;
    3434
     35    }
     36
     37    /**
     38     * Hook for new site creation when WordPress is in multisite mode
     39     *
     40     * @since   2.6.0
     41     *
     42     */
     43    public function wp_initialize_site($blog) {
     44        require_once plugin_dir_path( __FILE__ ) . '../includes/class-guardgiant-activator.php';
     45        Guardgiant_Activator::activate_on_new_blog($blog);
     46    }
     47
     48    /**
     49     * Hook for site deletion when WordPress is in multisite mode
     50     * (Only when WordPress is version 5.1 or less)
     51     *
     52     * @since   2.6.0
     53     *
     54     */
     55    public function delete_blog($blog, $drop) {
     56        require_once plugin_dir_path( __FILE__ ) . '../includes/class-guardgiant-deactivator.php';
     57        Guardgiant_Deactivator::delete_site($blog);
     58    }
     59
     60
     61    /**
     62     * Hook for site deletion when WordPress is in multisite mode
     63     *
     64     * @since   2.6.0
     65     *
     66     */
     67    public function wp_delete_site($blog) {
     68        require_once plugin_dir_path( __FILE__ ) . '../includes/class-guardgiant-deactivator.php';
     69        Guardgiant_Deactivator::delete_site($blog);
    3570    }
    3671
  • guardgiant/trunk/guardgiant.php

    r2635026 r2655897  
    1717 * Plugin URI:        https://www.guardgiant.com/
    1818 * Description:       Security plugin with 100% brute force protection that doesn't lock out genuine users.
    19  * Version:           2.2.4
     19 * Version:           2.3.0
    2020 * Author:            GuardGiant Brute Force Protection
    2121 * Author URI:        https://www.guardgiant.com/
     
    3232
    3333
    34 define( 'GUARDGIANT_VERSION', '2.2.4' );
     34define( 'GUARDGIANT_VERSION', '2.3.0' );
    3535
    3636// default settings
     
    8282 * This action is documented in includes/class-guardgiant-activator.php
    8383 */
    84 function activate_guardgiant() {
     84function activate_guardgiant($networkwide) {
    8585    require_once plugin_dir_path( __FILE__ ) . 'includes/class-guardgiant-activator.php';
    86     Guardgiant_Activator::activate();
     86    Guardgiant_Activator::activate($networkwide);
    8787}
    8888
  • guardgiant/trunk/includes/class-guardgiant-activator.php

    r2448416 r2655897  
    1313
    1414    /**
    15      *  activate
     15     * activate
    1616     *
    1717     * Called when plug-in is first activated.
     
    1919     * @since    1.0.0
    2020     */
    21     public static function activate() {
     21    public static function activate($network_wide = false) {
     22        global $wpdb;
     23
     24        if ( is_multisite() && $network_wide ) {
     25
     26            foreach (get_sites(['fields'=>'ids']) as $blog_id) {
     27                switch_to_blog($blog_id);
     28                Guardgiant_Activator::do_activation();
     29                restore_current_blog();
     30            }
     31   
     32        } else {
     33            Guardgiant_Activator::do_activation();
     34        }
     35    }
     36
     37    /**
     38     * activate_on_new_blog
     39     *
     40     * Used when Multisite is configured and GuardGiant is active for the whole network.
     41     * Setup database tables and default settings when a new site is created.
     42     *
     43     * @since    2.3.0
     44     */
     45    public static function activate_on_new_blog($blog_id) {
     46        if ( $blog_id instanceof WP_Site ) {
     47            $blog_id = (int) $blog_id->blog_id;
     48        }
     49
     50        if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
     51            // Makes sure the plugin is defined before trying to use it
     52            require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
     53        }
     54       
     55        if ( is_plugin_active_for_network( 'guardgiant/guardgiant.php' ) ) {
     56            switch_to_blog($blog_id);
     57            Guardgiant_Activator::do_activation();
     58            restore_current_blog();
     59        }
     60    }
     61
     62    /**
     63     * do_activation
     64     *
     65     * setup database tables and default settings.
     66     *
     67     * @since    2.3.0
     68     */
     69    public static function do_activation() {
    2270        global $wpdb;
    2371
     
    86134
    87135        // Set up our default settings
    88        
    89        
    90        
    91136       
    92137        // if this is a new installation then we record install date etc
     
    171216        $timestamp = wp_next_scheduled( 'guardgiant_housekeeping' );
    172217
    173         //If $timestamp == false schedule daily backups since it hasn't been done previously
    174218        if( $timestamp == false ){
    175219            //Schedule the event for right now, then to repeat twice daily using the hook 'guardgiant_housekeeping'
  • guardgiant/trunk/includes/class-guardgiant-deactivator.php

    r2429456 r2655897  
    11<?php
    2 
    3 /**
    4  * Fired during plugin deactivation
    5  *
    6  * @since      1.0.0
    7  *
    8  * @package    Guardgiant
    9  * @subpackage Guardgiant/includes
    10  */
    112
    123/**
     
    2617     * @since    1.0.0
    2718     */
    28     public static function deactivate() {
     19    public static function deactivate($network_wide = false) {
     20
     21        global $wpdb;
     22
     23        if ( is_multisite() && $network_wide ) {
     24
     25            foreach (get_sites(['fields'=>'ids']) as $blog_id) {
     26                switch_to_blog($blog_id);
     27                    Guardgiant_Deactivator::do_deactivation();
     28                restore_current_blog();
     29            }
     30   
     31        } else {
     32            Guardgiant_Deactivator::do_deactivation();
     33        }
     34    }
     35
     36
     37    /**
     38     * do_deactivation
     39     *
     40     *
     41     * @since    2.3.0
     42     */
     43    public static function do_deactivation() {
    2944
    3045        // remove our cron job
    3146        wp_clear_scheduled_hook('guardgiant_housekeeping');
    3247
    33         // (tasks such as deleting database tables are performed only when the plugin is uninstalled)
    34    
     48        // tasks such as deleting database tables are only performed when the plugin is uninstalled
     49        // or the site is deleted (when in multisite mode)
    3550    }
    3651
     52
     53
     54    /**
     55     * Delete site when in multisite mode
     56     *
     57     *
     58     * @since    2.3.0
     59     */
     60    public static function delete_site($blog_id) {
     61
     62        global $wpdb;
     63
     64        if ( $blog_id instanceof WP_Site ) {
     65            $blog_id = (int) $blog_id->blog_id;
     66        }
     67
     68        switch_to_blog( $blog_id ); 
     69
     70        $tablename = $wpdb->prefix."guardgiant_user_failed_logins";
     71        $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
     72
     73        $tablename = $wpdb->prefix."guardgiant_ip_failed_logins";
     74        $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
     75
     76        $tablename = $wpdb->prefix."guardgiant_login_activity_log";
     77        $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
     78       
     79        restore_current_blog();
     80
     81    }
     82
     83
    3784}
  • guardgiant/trunk/includes/class-guardgiant.php

    r2635026 r2655897  
    176176     */
    177177    private function define_admin_hooks() {
     178        global $wp_version;
    178179
    179180        $plugin_admin = new Guardgiant_Admin( $this->get_plugin_name(), $this->get_version() );
     
    197198        $this->loader->add_action( 'admin_notices', $plugin_admin, 'display_flash_notices', 12 );
    198199
     200        // Hook the 'Add new site' function when MultiSite is active
     201        if ( version_compare( $wp_version, '5.1', '<' ) ) {
     202            // wpmu_new_blog was deprecated in WordPress 5.1
     203            $this->loader->add_action( 'wpmu_new_blog', $plugin_admin, 'wp_initialize_site');
     204            $this->loader->add_action( 'delete_blog', $plugin_admin, 'delete_blog');
     205        }
     206        else {
     207            $this->loader->add_action( 'wp_initialize_site', $plugin_admin, 'wp_initialize_site', 99);
     208            $this->loader->add_action( 'wp_delete_site', $plugin_admin, 'wp_delete_site');
     209        }
    199210    }
    200211
     
    489500    public static function do_housekeeping()
    490501    {
    491         Guardgiant_IP_Failed_Logins::delete_old_records();
    492         Guardgiant_User_Failed_Logins::delete_old_records();   
    493         Guardgiant_Login_Activity_Log::delete_old_records();
     502        if ( is_multisite() ) {
     503
     504            foreach (get_sites(['fields'=>'ids']) as $blog_id) {
     505                switch_to_blog($blog_id);
     506                    Guardgiant_IP_Failed_Logins::delete_old_records();
     507                    Guardgiant_User_Failed_Logins::delete_old_records();   
     508                    Guardgiant_Login_Activity_Log::delete_old_records();
     509                restore_current_blog();
     510            }
     511        } else {
     512
     513            Guardgiant_IP_Failed_Logins::delete_old_records();
     514            Guardgiant_User_Failed_Logins::delete_old_records();   
     515            Guardgiant_Login_Activity_Log::delete_old_records();
     516        }
    494517
    495518    }
  • guardgiant/trunk/public/class-guardgiant-public.php

    r2635026 r2655897  
    509509     * @param   string      username
    510510     * @param   bool        is device trusted?
    511      * @param   WP_Error    only if this was a failed login attempt
     511     * @param   WP_Error    optional - only if this was a failed login attempt
    512512     *
    513513     */
  • guardgiant/trunk/uninstall.php

    r2448416 r2655897  
    1616
    1717global $wpdb;
    18 $tablename = $wpdb->prefix."guardgiant_user_failed_logins";
    19 $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
    2018
    21 $tablename = $wpdb->prefix."guardgiant_ip_failed_logins";
    22 $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
     19if ( function_exists( 'is_multisite' ) && is_multisite() ) {
     20    if ( false == is_super_admin() ) {
     21        return;
     22    }
     23   
     24    foreach (get_sites(['fields'=>'ids']) as $blog_id) {
     25        switch_to_blog( $blog_id );
     26            $tablename = $wpdb->prefix."guardgiant_user_failed_logins";
     27            $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
    2328
    24 $tablename = $wpdb->prefix."guardgiant_login_activity_log";
    25 $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
     29            $tablename = $wpdb->prefix."guardgiant_ip_failed_logins";
     30            $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
    2631
    27 delete_option('guardgiant-settings');
    28 delete_option('guardgiant_salt');
    29 delete_option('guardgiant-install');
    30 delete_option('guardgiant-stats');
     32            $tablename = $wpdb->prefix."guardgiant_login_activity_log";
     33            $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
    3134
     35            delete_option('guardgiant-settings');
     36            delete_option('guardgiant_salt');
     37            delete_option('guardgiant-install');
     38            delete_option('guardgiant-stats');
     39            delete_option('guardgiant-flash-notices');
     40
     41        restore_current_blog();
     42    }
     43} else {
     44    if ( ! current_user_can( 'activate_plugins' ) ) {
     45        return;
     46    }
     47    $tablename = $wpdb->prefix."guardgiant_user_failed_logins";
     48    $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
     49
     50    $tablename = $wpdb->prefix."guardgiant_ip_failed_logins";
     51    $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
     52
     53    $tablename = $wpdb->prefix."guardgiant_login_activity_log";
     54    $wpdb->query( "DROP TABLE IF EXISTS `$tablename`" );
     55
     56    delete_option('guardgiant-settings');
     57    delete_option('guardgiant_salt');
     58    delete_option('guardgiant-install');
     59    delete_option('guardgiant-stats');
     60    delete_option('guardgiant-flash-notices');
     61}
     62
     63
     64
Note: See TracChangeset for help on using the changeset viewer.