Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/09/2009 06:52:51 AM (17 years ago)
Author:
apeatling
Message:

Added nonce security checks to all BuddyPress actions. Fixes #454

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-messages/bp-messages-templatetags.php

    r1025 r1032  
    152152function bp_message_thread_delete_link() {
    153153    global $messages_template, $bp;
    154     echo apply_filters( 'bp_message_thread_delete_link', $bp->loggedin_user->domain . $bp->messages->slug . '/' . $bp->current_action . '/delete/' . $messages_template->thread->thread_id );
     154    echo apply_filters( 'bp_message_thread_delete_link', wp_nonce_url( $bp->loggedin_user->domain . $bp->messages->slug . '/' . $bp->current_action . '/delete/' . $messages_template->thread->thread_id, 'messages_delete_thread' ) );
    155155}
    156156
     
    263263    global $messages_template, $bp;
    264264   
    265     echo apply_filters( 'bp_message_notice_delete_link', $bp->loggedin_user->domain . $bp->messages->slug . '/notices/delete/' . $messages_template->thread->id );
     265    echo apply_filters( 'bp_message_notice_delete_link', wp_nonce_url( $bp->loggedin_user->domain . $bp->messages->slug . '/notices/delete/' . $messages_template->thread->id, 'messages_delete_thread' ) );
    266266}
    267267
     
    270270
    271271    if ( 1 == (int)$messages_template->thread->is_active ) {
    272         $link = $bp->loggedin_user->domain . $bp->messages->slug . '/notices/deactivate/' . $messages_template->thread->id;
     272        $link = wp_nonce_url( $bp->loggedin_user->domain . $bp->messages->slug . '/notices/deactivate/' . $messages_template->thread->id, 'messages_deactivate_notice' );
    273273    } else {
    274         $link = $bp->loggedin_user->domain . $bp->messages->slug . '/notices/activate/' . $messages_template->thread->id;       
     274        $link = wp_nonce_url( $bp->loggedin_user->domain . $bp->messages->slug . '/notices/activate/' . $messages_template->thread->id, 'messages_activate_notice' );       
    275275    }
    276276    echo apply_filters( 'bp_message_activate_deactivate_link', $link );
     
    303303                <h5><?php echo stripslashes($notice->subject) ?></h5>
    304304                <?php echo stripslashes($notice->message) ?>
    305                 <a href="#" id="close-notice">Close</a>
     305                <a href="#" id="close-notice"><?php _e( 'Close', 'buddypress' ) ?></a>
    306306            </div>
    307307            <?php
     
    352352    echo $_GET['r'];
    353353}
     354
     355function messages_view_thread( $thread_id ) {
     356    global $bp;
     357
     358    $thread = new BP_Messages_Thread( $thread_id, true );
     359   
     360    if ( !$thread->has_access ) {
     361        unset($_GET['mode']); ?>
     362        <div id="message" class="error">
     363            <p><?php _e( 'There was an error when viewing that message', 'buddypress' ) ?></p>
     364        </div>
     365    <?php   
     366    } else {
     367        if ( $thread->messages ) { ?>
     368            <?php $thread->mark_read() ?>
     369               
     370            <div class="wrap">
     371                <h2 id="message-subject"><?php echo $thread->subject; ?></h2>
     372                <table class="form-table">
     373                    <tbody>
     374                        <tr>
     375                            <td>
     376                                <img src="<?php echo $bp->messages->image_base ?>/email_open.gif" alt="Message" style="vertical-align: top;" /> &nbsp;
     377                                <?php _e('Sent between ', 'buddypress') ?> <?php echo BP_Messages_Thread::get_recipient_links($thread->recipients) ?>
     378                                <?php _e('and', 'buddypress') ?> <?php echo bp_core_get_userlink($bp->loggedin_user->id) ?>.
     379                            </td>
     380                        </tr>
     381                    </tbody>
     382                </table>
     383               
     384        <?php
     385            foreach ( $thread->messages as $message ) {
     386                ?>
     387                    <a name="<?php echo 'm-' . $message->id ?>"></a>
     388                    <div class="message-box">
     389                        <div class="avatar-box">
     390                            <?php echo apply_filters( 'bp_message_sender_avatar', bp_core_get_avatar( $message->sender_id, 1 ) ) ?>
     391                            <h3><?php echo apply_filters( 'bp_message_sender_id', bp_core_get_userlink( $message->sender_id ) ) ?></h3>
     392                            <small><?php echo apply_filters( 'bp_message_date_sent', bp_format_time( strtotime($message->date_sent ) ) ) ?></small>
     393                        </div>
     394                        <?php echo apply_filters( 'bp_message_content', stripslashes($message->message) ); ?>
     395                        <div class="clear"></div>
     396                    </div>
     397                <?php
     398            }
     399       
     400            ?>
     401                <form id="send-reply" action="<?php echo get_option('home'); ?>/wp-admin/admin.php?page=bp-messages.php&amp;mode=send" method="post">
     402                    <div class="message-box">
     403                            <div id="messagediv">
     404                                <div class="avatar-box">
     405                                    <?php if ( function_exists('bp_core_get_avatar') )
     406                                        echo bp_core_get_avatar($bp->loggedin_user->id, 1);
     407                                    ?>
     408                   
     409                                    <h3><?php _e("Reply: ", 'buddypress') ?></h3>
     410                                </div>
     411                                <label for="reply"></label>
     412                                <div>
     413                                    <textarea name="content" id="message_content" rows="15" cols="40"><?php echo $content; ?></textarea>
     414                                </div>
     415                            </div>
     416                            <p class="submit">
     417                                <input type="submit" name="send" value="Send Reply &raquo;" id="send_reply_button"/>
     418                            </p>
     419                            <input type="hidden" id="thread_id" name="thread_id" value="<?php echo $thread->thread_id ?>" />
     420                            <input type="hidden" name="subject" id="subject" value="<?php _e('Re: ', 'buddypress'); echo str_replace( 'Re: ', '', $thread->last_message_subject); ?>" />
     421                    </div>
     422                   
     423                    <?php wp_nonce_field( 'messages_send_message', '_wpnonce_send_message' ) ?>
     424                </form>
     425            </div>
     426            <?php
     427        }
     428    }
     429}
     430
    354431?>
Note: See TracChangeset for help on using the changeset viewer.