Skip to:
Content

BuddyPress.org

Changeset 9052


Ignore:
Timestamp:
09/27/2014 09:39:23 PM (12 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.