Skip to:
Content

BuddyPress.org

Ticket #8004: 8004.1.diff

File 8004.1.diff, 7.0 KB (added by dcavins, 2 years ago)

Customize IDs of activity comment form nonce inputs.

  • src/bp-core/bp-core-functions.php

    diff --git a/src/bp-core/bp-core-functions.php b/src/bp-core/bp-core-functions.php
    index 09e5c3ee0..102909b25 100644
    a b function bp_get_allowedtags() { 
    39003900function bp_strip_script_and_style_tags( $string ) {
    39013901        return preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $string );
    39023902}
     3903
     3904/**
     3905 * Produce WordPress nonces with the capability to specify the id of the input.
     3906 *
     3907 * @since 5.0
     3908 *
     3909 * @param int|string $action  Optional. Action name. Default -1.
     3910 * @param string     $id      Optional. Nonce input id. Default '_wpnonce'.
     3911 * @param string     $name    Optional. Nonce name. Default '_wpnonce'.
     3912 * @param bool       $referer Optional. Whether to set the referer field for validation. Default true.
     3913 * @param bool       $echo    Optional. Whether to display or return hidden form field. Default true.
     3914 * @return string Nonce field HTML markup.
     3915 */
     3916function bp_nonce_field( $action = -1, $id = "_wpnonce", $name = "_wpnonce", $referer = true , $echo = true ) {
     3917    $nonce_field = '<input type="hidden" id="' . esc_attr( $id ) . '" name="' . esc_attr( $name ) . '" value="' . wp_create_nonce( $action ) . '" />';
     3918
     3919    if ( $referer ) {
     3920        $nonce_field .= wp_referer_field( false );
     3921    }
     3922
     3923    if ( $echo ) {
     3924        echo $nonce_field;
     3925    }
     3926
     3927    return $nonce_field;
     3928}
  • src/bp-templates/bp-legacy/buddypress/activity/entry.php

    diff --git a/src/bp-templates/bp-legacy/buddypress/activity/entry.php b/src/bp-templates/bp-legacy/buddypress/activity/entry.php
    index c8510e7c4..6e8e091f3 100644
    a b do_action( 'bp_before_activity_entry' ); ?> 
    140140                                         */
    141141                                        do_action( 'bp_activity_entry_comments' ); ?>
    142142
    143                                         <?php wp_nonce_field( 'new_activity_comment', '_wpnonce_new_activity_comment' ); ?>
     143                                        <?php bp_nonce_field( 'new_activity_comment', '_wpnonce_new_activity_comment_' . bp_get_activity_id(), '_wpnonce_new_activity_comment' );?>
    144144
    145145                                </form>
    146146
  • src/bp-templates/bp-legacy/js/buddypress.js

    diff --git a/src/bp-templates/bp-legacy/js/buddypress.js b/src/bp-templates/bp-legacy/js/buddypress.js
    index d608a6dfe..56986a336 100644
    a b jq(document).ready( function() { 
    610610                        ajaxdata = {
    611611                                action: 'new_activity_comment',
    612612                                'cookie': bp_get_cookies(),
    613                                 '_wpnonce_new_activity_comment': jq('#_wpnonce_new_activity_comment').val(),
     613                                '_wpnonce_new_activity_comment': jq('#_wpnonce_new_activity_comment_' + form_id[2]).val() || jq('#_wpnonce_new_activity_comment').val(),
    614614                                'comment_id': comment_id,
    615615                                'form_id': form_id[2],
    616616                                'content': content.val()
  • src/bp-templates/bp-nouveau/buddypress/activity/comment-form.php

    diff --git a/src/bp-templates/bp-nouveau/buddypress/activity/comment-form.php b/src/bp-templates/bp-nouveau/buddypress/activity/comment-form.php
    index b0d4b9ee1..fea26e1d7 100644
    a b if ( ! bp_nouveau_current_user_can( 'comment_activity' ) || ! bp_activity_can_co 
    2323                <input type="hidden" name="comment_form_id" value="<?php bp_activity_id(); ?>" />
    2424
    2525                <?php
    26                 bp_nouveau_submit_button( 'activity-new-comment' );
     26                bp_nouveau_submit_button( 'activity-new-comment', bp_get_activity_id() );
    2727                printf(
    2828                        '&nbsp; <button type="button" class="ac-reply-cancel">%s</button>',
    2929                        esc_html( _x( 'Cancel', 'button', 'buddypress' ) )
  • src/bp-templates/bp-nouveau/includes/functions.php

    diff --git a/src/bp-templates/bp-nouveau/includes/functions.php b/src/bp-templates/bp-nouveau/includes/functions.php
    index 711596337..ccbe99287 100644
    a b function bp_nouveau_get_signup_fields( $section = '' ) { 
    12311231 * @since 3.0.0
    12321232 *
    12331233 * @param string $action The action requested.
     1234 * @param string $id     An associated ID to use to customize the button. Optional.
    12341235 *
    12351236 * @return array|false The list of the submit button parameters for the requested action
    12361237 *                     False if no actions were found.
    12371238 */
    1238 function bp_nouveau_get_submit_button( $action = '' ) {
     1239function bp_nouveau_get_submit_button( $action = '', $assoc_id = '' ) {
    12391240        if ( empty( $action ) ) {
    12401241                return false;
    12411242        }
    function bp_nouveau_get_submit_button( $action = '' ) { 
    13371338                        'after'     => 'bp_activity_entry_comments',
    13381339                        'nonce'     => 'new_activity_comment',
    13391340                        'nonce_key' => '_wpnonce_new_activity_comment',
     1341                        'nonce_id'  => ( $assoc_id ) ? "_wpnonce_new_activity_comment_{$assoc_id}" : '_wpnonce_new_activity_comment',
    13401342                        'wrapper'   => false,
    13411343                        'attributes' => array(
    13421344                                'name'  => 'ac_form_submit',
  • src/bp-templates/bp-nouveau/includes/template-tags.php

    diff --git a/src/bp-templates/bp-nouveau/includes/template-tags.php b/src/bp-templates/bp-nouveau/includes/template-tags.php
    index a0341a0bd..88875ada9 100644
    a b function bp_nouveau_signup_privacy_policy_acceptance_section() { 
    24922492 * @since 3.0.0
    24932493 *
    24942494 * @param string $action The action to get the submit button for. Required.
     2495 * @param string $id     An associated ID to use to customize the button. Optional.
    24952496 */
    2496 function bp_nouveau_submit_button( $action ) {
    2497         $submit_data = bp_nouveau_get_submit_button( $action );
     2497function bp_nouveau_submit_button( $action, $assoc_id = '' ) {
     2498        $submit_data = bp_nouveau_get_submit_button( $action, $assoc_id );
    24982499        if ( empty( $submit_data['attributes'] ) || empty( $submit_data['nonce'] ) ) {
    24992500                return;
    25002501        }
    function bp_nouveau_submit_button( $action ) { 
    25242525                printf( '<div class="submit">%s</div>', $submit_input );
    25252526        }
    25262527
    2527         if ( empty( $submit_data['nonce_key'] ) ) {
    2528                 wp_nonce_field( $submit_data['nonce'] );
    2529         } else {
    2530                 wp_nonce_field( $submit_data['nonce'], $submit_data['nonce_key'] );
    2531         }
     2528        $nonce_args = array(
     2529                'nonce'      => $submit_data['nonce'],
     2530                'nonce_id'   => ! empty( $submit_data['nonce_id'] ) ? $submit_data['nonce_id'] : '_wpnonce',
     2531                'nonce_name' => ! empty( $submit_data['nonce_key'] ) ? $submit_data['nonce_key'] : '_wpnonce'
     2532        );
     2533        bp_nonce_field( $nonce_args['nonce'], $nonce_args['nonce_id'], $nonce_args['nonce_name'] );
    25322534
    25332535        if ( ! empty( $submit_data['after'] ) ) {
    25342536
  • src/bp-templates/bp-nouveau/js/buddypress-activity.js

    diff --git a/src/bp-templates/bp-nouveau/js/buddypress-activity.js b/src/bp-templates/bp-nouveau/js/buddypress-activity.js
    index f7c3178f5..35d620c5f 100644
    a b window.bp = window.bp || {}; 
    731731
    732732                                comment_data = {
    733733                                        action                        : 'new_activity_comment',
    734                                         _wpnonce_new_activity_comment : $( '#_wpnonce_new_activity_comment' ).val(),
     734                                        _wpnonce_new_activity_comment : $( '#_wpnonce_new_activity_comment_' + activity_id ).val() || $( '#_wpnonce_new_activity_comment' ).val(),
    735735                                        comment_id                    : item_id,
    736736                                        form_id                       : activity_id,
    737737                                        content                       : comment_content.val()