Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/29/2020 05:32:05 PM (5 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/blogs/functions.php

    r12450 r12605  
    11421142        return ! empty( $a['activities'] );
    11431143    }
     1144
     1145    /**
     1146     * @ticket BP8175
     1147     */
     1148    public function test_blogs_data_should_be_deleted_on_user_delete_multisite() {
     1149        if ( ! is_multisite() ) {
     1150            $this->markTestSkipped( __METHOD__ . ' requires multisite.' );
     1151        }
     1152
     1153        if ( function_exists( 'wp_initialize_site' ) ) {
     1154            $this->setExpectedDeprecated( 'wpmu_new_blog' );
     1155        }
     1156
     1157        $u1 = self::factory()->user->create();
     1158        $b1 = get_current_blog_id();
     1159        $b2 = self::factory()->blog->create();
     1160
     1161        bp_blogs_record_blog( $b1, $u1, true );
     1162        bp_blogs_record_blog( $b2, $u1, true );
     1163
     1164        $blogs = bp_blogs_get_blogs_for_user( $u1 );
     1165
     1166        $this->assertEqualSets( [ $b1, $b2 ], wp_list_pluck( $blogs['blogs'], 'blog_id' ) );
     1167
     1168        wpmu_delete_user( $u1 );
     1169
     1170        $blogs = bp_blogs_get_blogs_for_user( $u1 );
     1171
     1172        $this->assertEmpty( $blogs['blogs'] );
     1173    }
     1174
     1175    /**
     1176     * @ticket BP8175
     1177     */
     1178    public function test_blogs_data_should_not_be_deleted_on_wp_delete_user_multisite() {
     1179        if ( ! is_multisite() ) {
     1180            $this->markTestSkipped( __METHOD__ . ' requires multisite.' );
     1181        }
     1182
     1183        if ( function_exists( 'wp_initialize_site' ) ) {
     1184            $this->setExpectedDeprecated( 'wpmu_new_blog' );
     1185        }
     1186
     1187        $u1 = self::factory()->user->create();
     1188        $b1 = get_current_blog_id();
     1189        $b2 = self::factory()->blog->create();
     1190
     1191        bp_blogs_record_blog( $b1, $u1, true );
     1192        bp_blogs_record_blog( $b2, $u1, true );
     1193
     1194        $blogs = bp_blogs_get_blogs_for_user( $u1 );
     1195
     1196        $this->assertEqualSets( [ $b1, $b2 ], wp_list_pluck( $blogs['blogs'], 'blog_id' ) );
     1197
     1198        wp_delete_user( $u1 );
     1199
     1200        $blogs = bp_blogs_get_blogs_for_user( $u1 );
     1201
     1202        $this->assertEqualSets( [ $b2 ], wp_list_pluck( $blogs['blogs'], 'blog_id' ) );
     1203    }
    11441204}
Note: See TracChangeset for help on using the changeset viewer.