WordPress.org

Making WordPress.org

Changeset 6168


Ignore:
Timestamp:
11/25/2017 09:24:59 AM (8 months ago)
Author:
dd32
Message:

Trac: Require a nonce when subscribing/unsubscribing to a ticket.

Location:
sites/trunk/wordpress.org/public_html
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/style/trac/wp-trac.js

    r5987 r6168  
    11361136
    11371137        notifications: (function() {
    1138             var notifications, endpoint, _ticket;
     1138            var notifications, endpoint, _ticket, _nonce;
    11391139
    11401140            function init( settings ) {
     
    11441144                }
    11451145                endpoint = settings.endpoint;
     1146                if ( settings.nonce ) {
     1147                    _nonce = settings.nonce;
     1148                }
    11461149                if ( settings.ticket ) {
    11471150                    _ticket = settings.ticket;
     
    11961199                        //  wpTrac.autocomplete.addNonTicketParticipant( data.data.maintainers ); doesn't work yet, because ticketInit() runs before autocomplete.init()
    11971200                        }
     1201
     1202                        if ( data.data.nonce ) {
     1203                            _nonce = data.data.nonce;
     1204                        }
    11981205                    }
    11991206                });
     
    12331240            }
    12341241
    1235             function save( action, ticket ) {
     1242            function save( action, ticket, nonce ) {
    12361243                ticket = ticket || _ticket;
     1244                nonce = nonce || _nonce;
    12371245                $.ajax({
    12381246                    type: 'POST',
     
    12411249                    data: {
    12421250                        'trac-ticket-sub': ticket,
    1243                         action: action
     1251                        action: action,
     1252                        nonce: nonce
    12441253                    }
    12451254                });
     
    13191328                    }
    13201329
     1330                    if ( data.data.nonce ) {
     1331                        _nonce = data.data.nonce;
     1332                    }
     1333
    13211334                    stars.each( function() {
    13221335                        if ( -1 !== $.inArray( $(this).data( 'ticket' ), data.data.tickets ) ) {
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/trac-notifications/trac-notifications.php

    r4305 r6168  
    124124        }
    125125
     126        if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], "manage_ticket_notifications" ) ) {
     127            wp_send_json_error();
     128        }
     129
    126130        $username = wp_get_current_user()->user_login;
    127131
     
    180184        $tickets = array_intersect( $queried_tickets, $subscribed_tickets );
    181185        $tickets = array_map( 'intval', array_values( $tickets ) );
    182         wp_send_json_success( array( 'tickets' => $tickets ) );
     186        wp_send_json_success( array(
     187            'tickets' => $tickets,
     188            'nonce' => wp_create_nonce( 'manage_ticket_notifications' )
     189        ) );
    183190    }
    184191
     
    311318    <?php
    312319        $this->ticket_notes( $ticket, $username, $meta );
    313         $send = array( 'notifications-box' => ob_get_clean() );
     320        $send = array(
     321            'notifications-box' => ob_get_clean(),
     322            'nonce' => wp_create_nonce( 'manage_ticket_notifications' )
     323        );
    314324        if ( isset( $this->components ) ) {
    315325            $send['maintainers'] = $this->components->get_component_maintainers( $ticket['component'] );
Note: See TracChangeset for help on using the changeset viewer.