Skip to:
Content

BuddyPress.org

Ticket #5275: 5275.03.patch

File 5275.03.patch, 3.4 KB (added by imath, 10 years ago)
  • src/bp-members/bp-members-functions.php

    diff --git src/bp-members/bp-members-functions.php src/bp-members/bp-members-functions.php
    index 72a035d..28fc8f1 100644
    function bp_core_process_spammer_status( $user_id, $status, $do_wp_cleanup = tru 
    812812                        update_user_status( $user_id, 'spam', $is_spam );
    813813                }
    814814
    815                 // Always set single site status
    816                 $wpdb->update( $wpdb->users, array( 'user_status' => $is_spam ), array( 'ID' => $user_id ) );
    817 
    818815                // Call multisite actions in single site mode for good measure
    819                 if ( !is_multisite() ) {
     816                if ( ! is_multisite() && ! $is_admin ) {
    820817                        if ( true === $is_spam ) {
    821818
    822819                                /**
    function bp_core_process_spammer_status( $user_id, $status, $do_wp_cleanup = tru 
    843840                }
    844841        }
    845842
     843        // Always set user status
     844        $wpdb->update( $wpdb->users, array( 'user_status' => $is_spam ), array( 'ID' => $user_id ) );
     845
    846846        // Hide this user's activity
    847847        if ( ( true === $is_spam ) && bp_is_active( 'activity' ) ) {
    848848                bp_activity_hide_user_activity( $user_id );
  • tests/phpunit/testcases/core/functions.php

    diff --git tests/phpunit/testcases/core/functions.php tests/phpunit/testcases/core/functions.php
    index c279066..d11a096 100644
    class BP_Tests_Core_Functions extends BP_UnitTestCase { 
    648648                        date_default_timezone_set( $tz_backup );
    649649                }
    650650        }
     651
     652        /**
     653         * @group bp_core_process_spammer_status
     654         */
     655        public function test_bp_core_process_spammer_status() {
     656                if ( is_multisite() ) {
     657                        return;
     658                }
     659
     660                $bp = buddypress();
     661                $displayed_user = $bp->displayed_user;
     662
     663                $u1 = $this->factory->user->create();
     664                $bp->displayed_user->id = $u1;
     665
     666                // Spam the user
     667                bp_core_process_spammer_status( $u1, 'spam' );
     668
     669                $this->assertTrue( bp_is_user_spammer( $u1 ) );
     670
     671                // Unspam the user
     672                bp_core_process_spammer_status( $u1, 'ham' );
     673
     674                clean_user_cache( $u1 );
     675
     676                $this->assertFalse( bp_is_user_spammer( $u1 ) );
     677
     678                // Reset displayed user
     679                $bp->displayed_user = $displayed_user;
     680        }
     681
     682        /**
     683         * @group bp_core_process_spammer_status
     684         */
     685        public function test_bp_core_process_spammer_status_ms_bulk_spam() {
     686                if ( ! is_multisite() ) {
     687                        return;
     688                }
     689
     690                $bp = buddypress();
     691                $displayed_user = $bp->displayed_user;
     692
     693                $u1 = $this->factory->user->create();
     694                $bp->displayed_user->id = $u1;
     695
     696                // Bulk spam in network admin uses update_user_status
     697                update_user_status( $u1, 'spam', '1' );
     698
     699                $this->assertTrue( bp_is_user_spammer( $u1 ) );
     700
     701                // Unspam the user
     702                bp_core_process_spammer_status( $u1, 'ham' );
     703
     704                clean_user_cache( $u1 );
     705
     706                $this->assertFalse( bp_is_user_spammer( $u1 ) );
     707
     708                // Reset displayed user
     709                $bp->displayed_user = $displayed_user;
     710        }
     711
     712        /**
     713         * @group bp_core_process_spammer_status
     714         */
     715        public function test_bp_core_process_spammer_status_ms_bulk_ham() {
     716                if ( ! is_multisite() ) {
     717                        return;
     718                }
     719
     720                $bp = buddypress();
     721                $displayed_user = $bp->displayed_user;
     722
     723                $u1 = $this->factory->user->create();
     724                $bp->displayed_user->id = $u1;
     725
     726                // Spam the user
     727                bp_core_process_spammer_status( $u1, 'spam' );
     728
     729                $this->assertTrue( bp_is_user_spammer( $u1 ) );
     730
     731                // Bulk unspam in network admin uses update_user_status
     732                update_user_status( $u1, 'spam', '0' );
     733
     734                clean_user_cache( $u1 );
     735
     736                $this->assertFalse( bp_is_user_spammer( $u1 ) );
     737
     738                // Reset displayed user
     739                $bp->displayed_user = $displayed_user;
     740        }
    651741}