Skip to:
Content

BuddyPress.org

Ticket #7565: 7565.02.patch

File 7565.02.patch, 2.1 KB (added by r-a-y, 21 months ago)
  • src/bp-members/bp-members-functions.php

     
    20202020
    20212021                        bp_delete_user_meta( $user_id, 'activation_key' );
    20222022
    2023                         $member = get_userdata( $user_id );
    2024                         $member->set_role( get_option('default_role') );
    2025 
    20262023                        $user_already_created = true;
    20272024
    20282025                } else {
     
    21442141        return $user_id;
    21452142}
    21462143
     2144/**
     2145 * Add default WordPress role for new signups on the BP root blog.
     2146 *
     2147 * @since 3.0.0
     2148 *
     2149 * @param int $user_id The user ID to add the default role for.
     2150 */
     2151function bp_members_add_role_after_activation( $user_id ) {
     2152        if ( ! is_numeric( $user_id ) ) {
     2153                return;
     2154        }
     2155
     2156        // Get default role to add.
     2157        $role = bp_get_option( 'default_role' );
     2158
     2159        // Multisite.
     2160        if ( is_multisite() && ! is_user_member_of_blog( $user_id, bp_get_root_blog_id() ) ) {
     2161                add_user_to_blog( bp_get_root_blog_id(), $user_id, $role );
     2162
     2163        // Single-site.
     2164        } elseif ( ! is_multisite() ) {
     2165                $member = get_userdata( $user_id );
     2166                $member->set_role( $role );
     2167        }
     2168}
     2169add_action( 'bp_core_activated_user', 'bp_members_add_role_after_activation', 1 );
     2170
    21472171/**
    21482172 * Migrate signups from pre-2.0 configuration to wp_signups.
    21492173 *
  • tests/phpunit/testcases/members/functions.php

     
    670670                        'buddypress',
    671671                );
    672672        }
     673
     674        /**
     675         * @group bp_core_activate_signup
     676         */
     677        public function test_bp_core_activate_signup_should_add_user_role() {
     678                $key = 'test';
     679
     680                // Create the signup.
     681                $this->factory->signup->create( array(
     682                        'user_login'     => 'test',
     683                        'user_email'     => 'test@example.com',
     684                        'activation_key' => $key,
     685                        'meta' => array(
     686                                'field_1' => 'Foo Bar',
     687                                'password' => 'foobar',
     688                        ),
     689                ) );
     690
     691                // Activate user.
     692                $user_id = bp_core_activate_signup( $key );
     693
     694                // Assert that user has a role.
     695                $user = get_userdata( $user_id );
     696                $this->assertNotEmpty( $user->roles );
     697        }
    673698}