Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/29/2020 05:32:05 PM (6 years ago)
Author:
boonebgorges
Message:

Don't delete user data on delete_user hook on Multisite.

The new function bp_remove_user_data_on_delete_user_hook(), which defaults
to false on Multisite and true otherwise, helps BuddyPress to differentiate
between the use of wp_delete_user() to delete a user account from an
installation (typical on non-Multisite) and its use to remove a user from
a site in a Multisite instance.

Props imath.

Fixes #8175.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/groups/functions.php

    r12429 r12605  
    950950        $this->assertSame( 'bp-group-pending-received-invitation-' . self::$group_ids[0], $actual['data'][0]['item_id'] );
    951951    }
     952
     953    /**
     954     * @ticket BP8175
     955     */
     956    public function test_groups_data_should_be_deleted_on_user_delete_non_multisite() {
     957        if ( is_multisite() ) {
     958            $this->markTestSkipped( __METHOD__ . ' requires non-multisite.' );
     959        }
     960
     961        $u = self::factory()->user->create();
     962
     963        groups_join_group( self::$group_ids[0], $u );
     964
     965        $this->assertNotEmpty( groups_is_user_member( $u, self::$group_ids[0] ) );
     966
     967        wp_delete_user( $u );
     968
     969        $this->assertFalse( groups_is_user_member( $u, self::$group_ids[0] ) );
     970    }
     971
     972    /**
     973     * @ticket BP8175
     974     */
     975    public function test_groups_data_should_be_deleted_on_user_delete_multisite() {
     976        if ( ! is_multisite() ) {
     977            $this->markTestSkipped( __METHOD__ . ' requires multisite.' );
     978        }
     979
     980        $u = self::factory()->user->create();
     981
     982        groups_join_group( self::$group_ids[0], $u );
     983
     984        $this->assertNotEmpty( groups_is_user_member( $u, self::$group_ids[0] ) );
     985
     986        wpmu_delete_user( $u );
     987
     988        $this->assertFalse( groups_is_user_member( $u, self::$group_ids[0] ) );
     989    }
     990
     991    /**
     992     * @ticket BP8175
     993     */
     994    public function test_groups_data_should_not_be_deleted_on_wp_delete_user_multisite() {
     995        if ( ! is_multisite() ) {
     996            $this->markTestSkipped( __METHOD__ . ' requires multisite.' );
     997        }
     998
     999        $u = self::factory()->user->create();
     1000
     1001        groups_join_group( self::$group_ids[0], $u );
     1002
     1003        $this->assertNotEmpty( groups_is_user_member( $u, self::$group_ids[0] ) );
     1004
     1005        wp_delete_user( $u );
     1006
     1007        $this->assertNotEmpty( groups_is_user_member( $u, self::$group_ids[0] ) );
     1008    }
    9521009}
Note: See TracChangeset for help on using the changeset viewer.