Skip to:
Content

BuddyPress.org

Ticket #2222: prevent_duplicate_memberships.diff

File prevent_duplicate_memberships.diff, 2.8 KB (added by boonebgorges, 16 years ago)
  • bp-groups.php

     
    136136                        bp_core_new_subnav_item( array( 'name' => sprintf( __( 'Members (%s)', 'buddypress' ), number_format( $bp->groups->current_group->total_member_count ) ), 'slug' => 'members', 'parent_url' => $group_link, 'parent_slug' => $bp->groups->slug, 'screen_function' => 'groups_screen_group_members', 'position' => 60, 'user_has_access' => $bp->groups->current_group->user_has_access, 'item_css_id' => 'members'  ) );
    137137
    138138                        if ( is_user_logged_in() && groups_is_user_member( $bp->loggedin_user->id, $bp->groups->current_group->id ) ) {
    139                                 if ( function_exists('friends_install') )
     139                                if ( bp_is_active( 'friends' ) )
    140140                                        bp_core_new_subnav_item( array( 'name' => __( 'Send Invites', 'buddypress' ), 'slug' => 'send-invites', 'parent_url' => $group_link, 'parent_slug' => $bp->groups->slug, 'screen_function' => 'groups_screen_group_invite', 'item_css_id' => 'invite', 'position' => 70, 'user_has_access' => $bp->groups->current_group->user_has_access ) );
    141141                        }
    142142                }
     
    20652065        if ( !$member->save() )
    20662066                return false;
    20672067
     2068        BP_Groups_Member::delete_request( $user_id, $group_id );
     2069
    20682070        /* Modify group meta */
    20692071        groups_update_groupmeta( $group_id, 'total_member_count', (int) groups_get_groupmeta( $group_id, 'total_member_count') + 1 );
    20702072        groups_update_groupmeta( $group_id, 'last_activity', gmdate( "Y-m-d H:i:s" ) );
     
    22402242        if ( !$membership->save() )
    22412243                return false;
    22422244
     2245        /* Check if the user has an outstanding invite, if so delete it. */
     2246        if ( groups_check_user_has_invite( $membership->user_id, $membership->group_id ) )
     2247                groups_delete_invite( $membership->user_id, $membership->group_id );
     2248
    22432249        /* Modify group member count */
    22442250        groups_update_groupmeta( $membership->group_id, 'total_member_count', (int) groups_get_groupmeta( $membership->group_id, 'total_member_count') + 1 );
    22452251
  • bp-groups/bp-groups-classes.php

     
    832832
    833833                return $wpdb->query( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND is_banned = 0 AND inviter_id = 0", $user_id, $group_id ) );
    834834        }
     835       
     836        function delete_request( $user_id, $group_id ) {
     837                global $wpdb, $bp;
    835838
     839                if ( !$user_id || !$group_id )
     840                        return false;
     841
     842                return $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND inviter_id = 0 AND invite_sent = 0", $user_id, $group_id ) );
     843        }
     844
    836845        function get_random_groups( $user_id, $total_groups = 5 ) {
    837846                global $wpdb, $bp;
    838847