Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
05/27/2024 07:30:17 PM (22 months ago)
Author:
imath
Message:

Groups: improve the way BuddyPress handles public group invites

  • In bp_group_join_button(): use specific arguments in case a user has been invited to join a public group to generate the action button.
  • In BP Legacy, update the bp_legacy_theme_ajax_joinleave_group() ajax callback to move the group request capability check at the right place & remove a wrong extra check about the invite approvement case.

Fixes #9054
Closes https://github.com/buddypress/buddypress/pull/292

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-templates/bp-legacy/buddypress-functions.php

    r13822 r13876  
    77 * @package BuddyPress
    88 * @subpackage BP_Theme_Compat
    9  * @version 12.0.0
     9 * @version 14.0.0
    1010 */
    1111
     
    16111611    if ( groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) {
    16121612        $request_type = 'leave_group';
    1613     } elseif ( groups_check_user_has_invite( bp_loggedin_user_id(), $group->id ) && 'joinleave_group' !== $action ) {
     1613    } elseif ( groups_check_user_has_invite( bp_loggedin_user_id(), $group->id ) ) {
    16141614        $request_type = 'accept_invite';
    16151615    } elseif ( 'private' === $group->status ) {
     
    16421642
    16431643        case 'accept_invite' :
    1644             if ( ! bp_current_user_can( 'groups_request_membership', array( 'group_id' => $group->id ) ) ) {
    1645                 esc_html_e( 'Error accepting invitation', 'buddypress' );
    1646             }
    1647 
    16481644            check_ajax_referer( 'groups_accept_invite' );
    16491645
     
    16651661            check_ajax_referer( 'groups_request_membership' );
    16661662
    1667             if ( ! groups_send_membership_request( [ 'user_id' => bp_loggedin_user_id(), 'group_id' => $group->id ] ) ) {
     1663            if ( ! bp_current_user_can( 'groups_request_membership', array( 'group_id' => $group->id ) ) || ! groups_send_membership_request( [ 'user_id' => bp_loggedin_user_id(), 'group_id' => $group->id ] ) ) {
    16681664                esc_html_e( 'Error requesting membership', 'buddypress' );
    16691665            } else {
Note: See TracChangeset for help on using the changeset viewer.