Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
11/03/2024 06:19:06 PM (21 months ago)
Author:
espellcaste
Message:

A user is no longer de-authenticated when making REST API requests.

We are introducing a new BP_LoggedIn_User class to fetch data about a BuddyPress logged-in user. This new addition fixes an issue where a user could be de-authenticated when making REST API requests.

Props dcavins, DJPaul, johnjamesjacoby, and imath.

Closes https://github.com/buddypress/buddypress/pull/395
See #9229 and #9145
Fixes #7658

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/groups/class-bp-groups-group.php

    r13980 r14070  
    976976
    977977                // Instantiate group object.
    978                 self::set_current_user( $u );
     978                wp_set_current_user( $u );
    979979                $group = new BP_Groups_Group( $g );
    980980
     
    982982                $this->assertTrue( ! empty( $group->is_member ) );
    983983
    984                 self::set_current_user( $this->old_current_user );
     984                wp_set_current_user( $this->old_current_user );
    985985        }
    986986
     
    14701470
    14711471                $old_user = get_current_user_id();
    1472                 self::set_current_user( 0 );
     1472                wp_set_current_user( 0 );
    14731473
    14741474                $this->assertEquals( $expected, BP_Groups_Group::get_group_extras( $paged_groups, $group_ids ) );
    14751475
    1476                 self::set_current_user( $old_user );
     1476                wp_set_current_user( $old_user );
    14771477        }
    14781478
     
    15011501
    15021502                $old_user = get_current_user_id();
    1503                 self::set_current_user( $u );
     1503                wp_set_current_user( $u );
    15041504
    15051505                $this->assertEquals( $expected, BP_Groups_Group::get_group_extras( $paged_groups, $group_ids ) );
    15061506
    1507                 self::set_current_user( $old_user );
     1507                wp_set_current_user( $old_user );
    15081508        }
    15091509
     
    15331533
    15341534                $old_user = get_current_user_id();
    1535                 self::set_current_user( $u );
     1535                wp_set_current_user( $u );
    15361536
    15371537                $this->assertEquals( $expected, BP_Groups_Group::get_group_extras( $paged_groups, $group_ids ) );
    15381538
    1539                 self::set_current_user( $old_user );
     1539                wp_set_current_user( $old_user );
    15401540        }
    15411541
     
    15731573
    15741574                $old_user = get_current_user_id();
    1575                 self::set_current_user( $u );
     1575                wp_set_current_user( $u );
    15761576
    15771577                $this->assertEquals( $expected, BP_Groups_Group::get_group_extras( $paged_groups, $group_ids ) );
    15781578
    1579                 self::set_current_user( $old_user );
     1579                wp_set_current_user( $old_user );
    15801580        }
    15811581
     
    16101610
    16111611                $old_user = get_current_user_id();
    1612                 self::set_current_user( $u );
     1612                wp_set_current_user( $u );
    16131613
    16141614                $this->assertEquals( $expected, BP_Groups_Group::get_group_extras( $paged_groups, $group_ids ) );
    16151615
    1616                 self::set_current_user( $old_user );
     1616                wp_set_current_user( $old_user );
    16171617        }
    16181618
     
    16481648
    16491649                $old_user = get_current_user_id();
    1650                 self::set_current_user( $u );
     1650                wp_set_current_user( $u );
    16511651
    16521652                $this->assertEquals( $expected, BP_Groups_Group::get_group_extras( $paged_groups, $group_ids ) );
    16531653
    1654                 self::set_current_user( $old_user );
     1654                wp_set_current_user( $old_user );
    16551655        }
    16561656
     
    17451745        /**
    17461746         * @ticket BP5451
     1747         * @ticket BP7658
    17471748         */
    17481749        public function test_is_member_property() {
    1749                 $users = self::factory()->user->create_many( 2 );
    1750 
    1751                 $g = self::factory()->group->create( array(
    1752                         'creator_id' => $users[0],
    1753                 ) );
    1754 
    1755                 wp_set_current_user( $users[1] );
     1750                $u1 = self::factory()->user->create();
     1751                $u2 = self::factory()->user->create();
     1752                $g  = self::factory()->group->create( array( 'creator_id' => $u1 ) );
     1753
     1754                wp_set_current_user( $u2 );
    17561755
    17571756                $group_a = new BP_Groups_Group( $g );
     1757
     1758                // $u2 IS NOT a member of $g yet.
    17581759                $this->assertFalse( $group_a->is_member );
    17591760
    1760                 $this->add_user_to_group( $users[1], $g );
     1761                // Now $u2 IS a member of $g.
     1762                $this->add_user_to_group( $u2, $g );
     1763
    17611764                $group_b = new BP_Groups_Group( $g );
    1762                 $this->assertFalse( $group_b->is_member );
     1765
     1766                // $u2 IS a member of $g. This returns the ID of the membership, not the User id or boolean.
     1767                $this->assertTrue( (bool) $group_b->is_member );
    17631768        }
    17641769
    17651770        /**
    17661771         * @ticket BP5451
     1772         * @ticket BP7658
    17671773         */
    17681774        public function test_is_invited_property() {
    1769                 $users = self::factory()->user->create_many( 2 );
    1770 
    1771                 $g = self::factory()->group->create( array(
    1772                         'creator_id' => $users[0],
    1773                 ) );
    1774 
    1775                 wp_set_current_user( $users[1] );
     1775                $u1 = self::factory()->user->create();
     1776                $u2 = self::factory()->user->create();
     1777                $g  = self::factory()->group->create( array( 'creator_id' => $u1 ) );
     1778
     1779                wp_set_current_user( $u2 );
    17761780
    17771781                $group_a = new BP_Groups_Group( $g );
     1782
    17781783                $this->assertFalse( $group_a->is_invited );
    17791784
    17801785                groups_invite_user( array(
    1781                         'user_id'    => $users[1],
     1786                        'user_id'    => $u2,
    17821787                        'group_id'   => $g,
    1783                         'inviter_id' => $users[0],
     1788                        'inviter_id' => $u1,
    17841789                        'send_invite' => 1
    17851790                ) );
    17861791
    17871792                $group_b = new BP_Groups_Group( $g );
    1788                 $this->assertFalse( $group_b->is_invited );
     1793
     1794                $this->assertTrue( wp_validate_boolean( $group_b->is_invited ) );
    17891795        }
    17901796
     
    17931799         */
    17941800        public function test_is_pending_property() {
    1795                 $users = self::factory()->user->create_many( 2 );
    1796 
    1797                 $g = self::factory()->group->create( array(
    1798                         'creator_id' => $users[0],
    1799                 ) );
    1800 
    1801                 wp_set_current_user( $users[1] );
     1801                $u1 = self::factory()->user->create();
     1802                $u2 = self::factory()->user->create();
     1803                $g  = self::factory()->group->create( array( 'creator_id' => $u1 ) );
     1804
     1805                wp_set_current_user( $u2 );
    18021806
    18031807                $group_a = new BP_Groups_Group( $g );
     1808
    18041809                $this->assertFalse( $group_a->is_pending );
    18051810
    18061811                groups_send_membership_request( array(
    1807                         'user_id' => $users[1],
     1812                        'user_id' => $u2,
    18081813                        'group_id' => $g
    18091814                ) );
     
    18121817                $this->assertFalse( $group_b->is_pending );
    18131818        }
    1814 
    18151819
    18161820        /**
Note: See TracChangeset for help on using the changeset viewer.