Skip to:
Content

BuddyPress.org

Changeset 9052


Ignore:
Timestamp:
09/27/2014 09:39:23 PM (8 years ago)
Author:
imath
Message:

Make sure the parent activity exists before adding a comment to it.

There can be a case when the activity displayed in the stream has been deleted by another user. Adding a comment should not be possible for this particular case as the parent activity does not exist anymore. The patch is adding a check on the date_recorded field of the parent activity before adding a comment. If it is not set, then false is returned and a default message is displayed to the user by bp_legacy_theme_new_activity_comment(). As boonebgorges, some improvements on the message can still be added.

See #5907

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-activity/bp-activity-functions.php

    r8996 r9052  
    13511351    $activity_id = $r['activity_id'];
    13521352
     1353    // Get the parent activity
     1354    $activity  = new BP_Activity_Activity( $activity_id );
     1355
     1356    // Bail if the parent activity does not exist
     1357    if ( empty( $activity->date_recorded ) ) {
     1358        return false;
     1359    }
     1360
    13531361    // Check to see if the parent activity is hidden, and if so, hide this comment publically.
    1354     $activity  = new BP_Activity_Activity( $activity_id );
    13551362    $is_hidden = ( (int) $activity->hide_sitewide ) ? 1 : 0;
    13561363
     
    16621669            }
    16631670        }
    1664        
     1671
    16651672        // Delete the comment itself
    16661673        bp_activity_delete( array(
  • trunk/tests/phpunit/testcases/activity/functions.php

    r8990 r9052  
    724724
    725725    /**
     726     * @group bp_activity_new_comment
     727     * @group BP5907
     728     */
     729    public function test_bp_activity_comment_on_deleted_activity() {
     730        $a = $this->factory->activity->create();
     731
     732        bp_activity_delete_by_activity_id( $a );
     733
     734        $c = bp_activity_new_comment( array(
     735            'activity_id' => $a,
     736            'parent_id' => $a,
     737            'content' => 'foo',
     738            'user_id' => 1,
     739        ) );
     740
     741        $this->assertEmpty( $c );
     742    }
     743
     744    /**
    726745     * @group favorites
    727746     * @group bp_activity_add_user_favorite
Note: See TracChangeset for help on using the changeset viewer.