Skip to:
Content

BuddyPress.org

Ticket #8574: 8574.patch

File 8574.patch, 1.3 KB (added by imath, 3 years ago)
  • src/bp-templates/bp-legacy/buddypress-functions.php

    diff --git src/bp-templates/bp-legacy/buddypress-functions.php src/bp-templates/bp-legacy/buddypress-functions.php
    index b4c4b0a8a..b9855f13a 100644
    function bp_legacy_theme_ajax_joinleave_group() { 
    15361536        // Cast gid as integer.
    15371537        $group_id = (int) $_POST['gid'];
    15381538
    1539         if ( groups_is_user_banned( bp_loggedin_user_id(), $group_id ) )
     1539        if ( groups_is_user_banned( bp_loggedin_user_id(), $group_id ) ) {
    15401540                return;
     1541        }
     1542
     1543        $group = groups_get_group( $group_id );
    15411544
    1542         if ( ! $group = groups_get_group( $group_id ) )
     1545        if ( ! $group ) {
    15431546                return;
     1547        }
     1548
     1549        $action = '';
     1550        if ( isset( $_POST['action'] ) ) {
     1551                $action = sanitize_key( wp_unslash( $_POST['action'] ) );
     1552        }
    15441553
    15451554        // Client doesn't distinguish between different request types, so we infer from user status.
    15461555        if ( groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) {
    15471556                $request_type = 'leave_group';
    1548         } elseif ( groups_check_user_has_invite( bp_loggedin_user_id(), $group->id ) ) {
     1557        } elseif ( groups_check_user_has_invite( bp_loggedin_user_id(), $group->id ) && 'joinleave_group' !== $action ) {
    15491558                $request_type = 'accept_invite';
    15501559        } elseif ( 'private' === $group->status ) {
    15511560                $request_type = 'request_membership';