Skip to:
Content

bbPress.org


Ignore:
Timestamp:
12/13/2019 07:30:18 PM (5 years ago)
Author:
johnjamesjacoby
Message:

Users: ensure topic & reply counts and last posted time are updated when user is spammed & hammed.

This commit ensures that these user meta values are correct when a user is marked (or unmarked) as a spammer. In addition, the newer topic status function is used to ensure that Closed topics are included.

See #3305. For 2.7, trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/users/capabilities.php

    r7006 r7029  
    485485    }
    486486
    487     // Make array of post types to mark as spam
     487    // Get array of post types to mark as spam
    488488    $post_types = array( bbp_get_topic_post_type(), bbp_get_reply_post_type() );
    489489    $post_types = "'" . implode( "', '", $post_types ) . "'";
    490490
     491    // Get array of statuses to mark as spam
     492    $post_statuses = bbp_get_public_topic_statuses();
     493    $post_statuses = "'" . implode( "', '", $post_statuses ) . "'";
     494
    491495    // Loop through blogs and remove their posts
    492496    foreach ( (array) array_keys( $blogs ) as $blog_id ) {
     
    496500
    497501        // Get topics and replies
    498         $query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status = %s AND post_type IN ( {$post_types} )", $user_id, bbp_get_public_status_id() );
     502        $query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status IN ( {$post_statuses} ) AND post_type IN ( {$post_types} )", $user_id );
    499503        $posts = $bbp_db->get_col( $query );
    500504
     
    522526    }
    523527
     528    // Delete user options
     529    bbp_delete_user_options( $user_id );
     530
    524531    // Success
    525532    return true;
     
    563570    }
    564571
    565     // Make array of post types to mark as spam
     572    // Get array of post types to mark as spam
    566573    $post_types = array( bbp_get_topic_post_type(), bbp_get_reply_post_type() );
    567574    $post_types = "'" . implode( "', '", $post_types ) . "'";
    568575
     576    // Get array of statuses to unmark as spam
     577    $post_statuses = array( bbp_get_spam_status_id() );
     578    $post_statuses = "'" . implode( "', '", $post_statuses ) . "'";
     579
    569580    // Loop through blogs and remove their posts
    570581    foreach ( (array) array_keys( $blogs ) as $blog_id ) {
     
    574585
    575586        // Get topics and replies
    576         $query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status = %s AND post_type IN ( {$post_types} )", $user_id, bbp_get_spam_status_id() );
     587        $query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status IN ( {$post_statuses} ) AND post_type IN ( {$post_types} )", $user_id );
    577588        $posts = $bbp_db->get_col( $query );
    578589
     
    600611    }
    601612
     613    // Update topic & reply counts
     614    bbp_update_user_topic_count( $user_id, bbp_get_user_topic_count_raw( $user_id ) );
     615    bbp_update_user_reply_count( $user_id, bbp_get_user_reply_count_raw( $user_id ) );
     616
     617    // Update last posted (to now)
     618    bbp_update_user_last_posted( $user_id );
     619
    602620    // Success
    603621    return true;
Note: See TracChangeset for help on using the changeset viewer.