Skip to:
Content

BuddyPress.org

Ticket #4992: 4992.patch

File 4992.patch, 3.9 KB (added by johnjamesjacoby, 11 years ago)
  • bp-core/bp-core-classes.php

     
    803803                }
    804804
    805805                if ( !empty( $exclude ) ) {
     806                        $exclude              = wp_parse_id_list( $exclude );
     807                        $exclude              = $wpdb->escape( implode( ',', $exclude ) );
    806808                        $sql['where_exclude'] = "AND u.ID NOT IN ({$exclude})";
    807809                }
    808810
     
    812814                        $sql['where_users'] = "AND 0 = 1";
    813815                } else {
    814816                        if ( !empty( $include ) ) {
    815                                 if ( is_array( $include ) ) {
    816                                         $uids = $wpdb->escape( implode( ',', (array) $include ) );
    817                                 } else {
    818                                         $uids = $wpdb->escape( $include );
    819                                 }
    820 
    821                                 if ( !empty( $uids ) ) {
    822                                         $sql['where_users'] = "AND u.ID IN ({$uids})";
    823                                 }
     817                                $include = wp_parse_id_list( $include );
     818                                $include = esc_sql( implode( ',',  $include ) );
     819                                $sql['where_users'] = "AND u.ID IN ({$include})";
    824820                        } elseif ( !empty( $user_id ) && bp_is_active( 'friends' ) ) {
    825821                                $friend_ids = friends_get_friend_user_ids( $user_id );
    826                                 $friend_ids = $wpdb->escape( implode( ',', (array) $friend_ids ) );
    827822
    828823                                if ( !empty( $friend_ids ) ) {
     824                                        $friend_ids = esc_sql( implode( ',', wp_parse_id_list( $friend_ids ) ) );
    829825                                        $sql['where_friends'] = "AND u.ID IN ({$friend_ids})";
    830826
    831827                                // User has no friends, return false since there will be no users to fetch.
     
    911907                                $user_ids[] = $user->id;
    912908                        }
    913909
    914                         $user_ids = $wpdb->escape( join( ',', (array) $user_ids ) );
    915 
    916910                        // Add additional data to the returned results
    917911                        $paged_users = BP_Core_User::get_user_extras( $paged_users, $user_ids, $type );
    918912                }
     
    981975                foreach ( (array) $paged_users as $user )
    982976                        $user_ids[] = $user->id;
    983977
    984                 $user_ids = $wpdb->escape( join( ',', (array) $user_ids ) );
    985 
    986978                // Add additional data to the returned results
    987979                if ( $populate_extras ) {
    988980                        $paged_users = BP_Core_User::get_user_extras( $paged_users, $user_ids );
     
    10091001                if ( $limit && $page )
    10101002                        $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
    10111003
     1004                $user_ids   = implode( ',', wp_parse_id_list( $user_ids ) );
    10121005                $status_sql = bp_core_get_status_sql();
    10131006
    1014                 $total_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', "SELECT COUNT(DISTINCT ID) FROM {$wpdb->users} WHERE {$status_sql} AND ID IN ( " . $wpdb->escape( $user_ids ) . " ) " );
    1015                 $paged_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', "SELECT DISTINCT ID as id, user_registered, user_nicename, user_login, user_email FROM {$wpdb->users} WHERE {$status_sql} AND ID IN ( " . $wpdb->escape( $user_ids ) . " ) {$pag_sql}" );
     1007                $total_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', "SELECT COUNT(DISTINCT ID) FROM {$wpdb->users} WHERE {$status_sql} AND ID IN ({$user_ids})" );
     1008                $paged_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', "SELECT DISTINCT ID as id, user_registered, user_nicename, user_login, user_email FROM {$wpdb->users} WHERE {$status_sql} AND ID IN ({$user_ids}) {$pag_sql}" );
    10161009
    10171010                $total_users = $wpdb->get_var( $total_users_sql );
    10181011                $paged_users = $wpdb->get_results( $paged_users_sql );
     
    10671060                foreach ( (array) $paged_users as $user )
    10681061                        $user_ids[] = $user->id;
    10691062
    1070                 $user_ids = $wpdb->escape( join( ',', (array) $user_ids ) );
    1071 
    10721063                // Add additional data to the returned results
    10731064                if ( $populate_extras )
    10741065                        $paged_users = BP_Core_User::get_user_extras( $paged_users, $user_ids );
     
    10951086                if ( empty( $user_ids ) )
    10961087                        return $paged_users;
    10971088
     1089                // Sanitize user ID's
     1090                $user_ids = implode( ',', wp_parse_id_list( $user_ids ) );
     1091
    10981092                // Fetch the user's full name
    10991093                if ( bp_is_active( 'xprofile' ) && 'alphabetical' != $type ) {
    11001094                        $names = $wpdb->get_results( $wpdb->prepare( "SELECT pd.user_id as id, pd.value as fullname FROM {$bp->profile->table_name_fields} pf, {$bp->profile->table_name_data} pd WHERE pf.id = pd.field_id AND pf.name = %s AND pd.user_id IN ( {$user_ids} )", bp_xprofile_fullname_field_name() ) );