WordPress.org

Making WordPress.org

Changeset 6168


Ignore:
Timestamp:
11/25/17 09:24:59 (3 weeks 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.