Skip to:
Content

BuddyPress.org

Changeset 1032


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

Location:
trunk
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-blogs.php

    r1030 r1032  
    110110    if ( is_site_admin() ) {
    111111        /* Need to check db tables exist, activate hook no-worky in mu-plugins folder. */
    112         if ( ( false == $wpdb->get_var("SHOW TABLES LIKE '%" . $bp->blogs->table_name . "%'") ) || ( get_site_option('bp-blogs-db-version') < BP_BLOGS_DB_VERSION )  )
     112        if ( ( !$wpdb->get_var("SHOW TABLES LIKE '%" . $bp->blogs->table_name . "%'") ) || ( get_site_option('bp-blogs-db-version') < BP_BLOGS_DB_VERSION )  )
    113113            bp_blogs_install();
    114114    }
  • trunk/bp-blogs/bp-blogs-templatetags.php

    r1025 r1032  
    692692                <input id="submit" type="submit" name="submit" class="submit" value="<?php _e('Create Blog &raquo;', 'buddypress') ?>" />
    693693            </p>
     694           
     695            <?php wp_nonce_field( 'bp_blog_signup_form' ) ?>
    694696        </form>
    695697        <?php
     
    755757    global $wpdb, $current_user, $blogname, $blog_title, $errors, $domain, $path;
    756758
     759    if ( !check_admin_referer( 'bp_blog_signup_form' ) )
     760        return false;
     761
    757762    $current_user = wp_get_current_user();
    758763   
  • trunk/bp-blogs/js/directory-blogs.js

    r719 r1032  
    66            jQuery("div#blogs-list-options a").removeClass("selected");
    77            jQuery(this).addClass('selected');
     8            jQuery("input#blogs_search").val('');
    89
    910            var letter = jQuery(this).attr('id')
  • trunk/bp-core.php

    r1030 r1032  
    240240    if ( is_site_admin() ) {
    241241        /* Need to check db tables exist, activate hook no-worky in mu-plugins folder. */
    242         if ( ( false == $wpdb->get_var( "SHOW TABLES LIKE '%{$bp->core->table_name_notifications}%'" ) ) || ( get_site_option('bp-core-db-version') < BP_CORE_DB_VERSION )  )
     242        if ( ( !$wpdb->get_var( "SHOW TABLES LIKE '%{$bp->core->table_name_notifications}%'" ) ) || ( get_site_option('bp-core-db-version') < BP_CORE_DB_VERSION )  )
    243243            bp_core_install();
    244244    }
  • trunk/bp-core/bp-core-avatars.php

    r1025 r1032  
    108108            echo '<span class="crop-img avatar">' . bp_core_get_avatar(get_current_user_id(), 1) . '</span>';
    109109            echo '<span class="crop-img avatar">' . bp_core_get_avatar(get_current_user_id(), 2) . '</span>';
    110             echo '<a href="' .  $delete_action . '">' . __( 'Delete', 'buddypress' ) . '</a>';
     110            echo '<a href="' .  wp_nonce_url( $delete_action, 'bp_delete_avatar_link' ) . '">' . __( 'Delete', 'buddypress' ) . '</a>';
    111111        }
    112112
  • trunk/bp-core/bp-core-templatetags.php

    r1021 r1032  
    480480       
    481481            <input type="submit" name="search-submit" id="search-submit" value="' . __( 'Search', 'buddypress' ) . '" />
     482            ' . wp_nonce_field( 'bp_search_form' ) . '
    482483        </form>
    483484    ';
  • trunk/bp-core/js/directory-members.js

    r719 r1032  
    66            jQuery("div#members-list-options a").removeClass("selected");
    77            jQuery(this).addClass('selected');
     8            jQuery("input#members_search").val('');
    89           
    910            var letter = jQuery(this).attr('id')
  • trunk/bp-core/js/general.js

    r593 r1032  
    88            fid = fid[1];
    99           
     10            var nonce = jQuery(this).attr('href');
     11            nonce = nonce.split('?_wpnonce=');
     12            nonce = nonce[1].split('&');
     13            nonce = nonce[0];
     14
    1015            var thelink = jQuery(this);
    1116
     
    1318                action: 'addremove_friend',
    1419                'cookie': encodeURIComponent(document.cookie),
    15                 'fid': fid
     20                'fid': fid,
     21                '_wpnonce': nonce
    1622            },
    1723            function(response)
  • trunk/bp-forums.php

    r1025 r1032  
    159159function bp_forums_new_post( $post_text = '', $topic_id = 0 ) {
    160160    global $bbpress_live;
     161
     162    if ( !check_admin_referer( 'bp_forums_new_reply' ) )
     163        return false;
    161164   
    162165    if ( !is_object( $bbpress_live ) ) {
  • trunk/bp-forums/bp-forums-filters.php

    r927 r1032  
    5151function bp_forums_filter_decode( $content ) {
    5252    $content = str_replace( '/amp/', '&', $content );
    53     $content = html_entity_decode( $content, ENT_COMPAT, "UTF-8" );
     53    $content = @html_entity_decode( $content, ENT_COMPAT, "UTF-8" );
    5454    $content = str_replace( '[', '<', $content );
    5555    $content = str_replace( ']', '>', $content );
  • trunk/bp-friends.php

    r1030 r1032  
    7373    if ( is_site_admin() ) {
    7474        /* Need to check db tables exist, activate hook no-worky in mu-plugins folder. */
    75         if ( ( false == $wpdb->get_var( "SHOW TABLES LIKE '%{$bp->friends->table_name}%'") ) || ( get_site_option('bp-friends-db-version') < BP_FRIENDS_DB_VERSION )  )
     75        if ( ( !$wpdb->get_var( "SHOW TABLES LIKE '%{$bp->friends->table_name}%'") ) || ( get_site_option('bp-friends-db-version') < BP_FRIENDS_DB_VERSION )  )
    7676            friends_install();
    7777    }
     
    484484    global $bp;
    485485   
     486    /* Check the nonce */
     487    if ( !check_admin_referer( 'friends_add_friend' ) )
     488        return false;
     489   
    486490    $friendship = new BP_Friends_Friendship;
    487491   
     
    513517function friends_remove_friend( $initiator_userid, $friend_userid ) {
    514518    global $bp;
     519
     520    /* Check the nonce */
     521    if ( !check_admin_referer( 'friends_remove_friend' ) )
     522        return false;
    515523       
    516524    $friendship_id = BP_Friends_Friendship::get_friendship_id( $initiator_userid, $friend_userid );
     
    532540
    533541function friends_accept_friendship( $friendship_id ) {
     542    /* Check the nonce */
     543    if ( !check_admin_referer( 'friends_accept_friendship' ) )
     544        return false;
     545       
    534546    $friendship = new BP_Friends_Friendship( $friendship_id, true, false );
    535    
     547
    536548    if ( !$friendship->is_confirmed && BP_Friends_Friendship::accept( $friendship_id ) ) {
    537549        friends_update_friend_totals( $friendship->initiator_user_id, $friendship->friend_user_id );
     
    555567
    556568function friends_reject_friendship( $friendship_id ) {
     569    /* Check the nonce */
     570    if ( !check_admin_referer( 'friends_reject_friendship' ) )
     571        return false;
     572       
    557573    $friendship = new BP_Friends_Friendship( $friendship_id, true, false );
    558574
  • trunk/bp-friends/bp-friends-ajax.php

    r1025 r1032  
    44    global $bp;
    55
    6     check_ajax_referer('friend_search');
     6    check_ajax_referer( 'friends_search' );
    77   
    88    load_template( get_template_directory() . '/friends/friends-loop.php' );
     
    1414
    1515    if ( 'is_friend' == BP_Friends_Friendship::check_is_friend( $bp->loggedin_user->id, $_POST['fid'] ) ) {
     16       
     17        check_ajax_referer('friends_remove_friend');
     18       
    1619        if ( !friends_remove_friend( $bp->loggedin_user->id, $_POST['fid'] ) ) {
    1720            echo __("Friendship could not be canceled.", 'buddypress');
    1821        } else {
    19             echo '<a id="friend-' . $_POST['fid'] . '" class="add" rel="add" title="' . __( 'Add Friend', 'buddypress' ) . '" href="' . $bp->loggedin_user->domain . $bp->friends->slug . '/add-friend/' . $_POST['fid'] . '">' . __( 'Add Friend', 'buddypress' ) . '</a>';
     22            echo '<a id="friend-' . $_POST['fid'] . '" class="add" rel="add" title="' . __( 'Add Friend', 'buddypress' ) . '" href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/add-friend/' . $_POST['fid'], 'friends_add_friend' ) . '">' . __( 'Add Friend', 'buddypress' ) . '</a>';
    2023        }
    2124    } else if ( 'not_friends' == BP_Friends_Friendship::check_is_friend( $bp->loggedin_user->id, $_POST['fid'] ) ) {
     25       
     26        check_ajax_referer('friends_add_friend');
     27       
    2228        if ( !friends_add_friend( $bp->loggedin_user->id, $_POST['fid'] ) ) {
    2329            echo __("Friendship could not be requested.", 'buddypress');
  • trunk/bp-friends/bp-friends-templatetags.php

    r1025 r1032  
    248248    global $friends_template, $bp;
    249249   
    250     echo apply_filters( 'bp_friend_accept_request_link', $bp->loggedin_user->domain . $bp->friends->slug . '/requests/accept/' . $friends_template->friendship->id );
     250    echo apply_filters( 'bp_friend_accept_request_link', wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/requests/accept/' . $friends_template->friendship->id, 'friends_accept_friendship' ) );
    251251}
    252252
     
    254254    global $friends_template, $bp;
    255255   
    256     echo apply_filters( 'bp_friend_reject_request_link', $bp->loggedin_user->domain . $bp->friends->slug . '/requests/reject/' . $friends_template->friendship->id );   
     256    echo apply_filters( 'bp_friend_reject_request_link', wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/requests/reject/' . $friends_template->friendship->id, 'friends_reject_friendship' ) ); 
    257257}
    258258
     
    269269?>
    270270    <form action="<?php echo $action ?>" id="friend-search-form" method="post">
     271
    271272        <label for="friend-search-box" id="friend-search-label"><?php echo $label ?> <img id="ajax-loader" src="<?php echo $bp->friends->image_base ?>/ajax-loader.gif" height="7" alt="Loading" style="display: none;" /></label>
    272273        <input type="search" name="friend-search-box" id="friend-search-box" value="<?php echo $value ?>"<?php echo $disabled ?> />
    273         <?php if ( function_exists('wp_nonce_field') )
    274             wp_nonce_field('friend_search' );
    275         ?>
     274       
     275        <?php wp_nonce_field( 'friends_search', '_wpnonce_friend_search' ) ?>
    276276        <input type="hidden" name="initiator" id="initiator" value="<?php echo $bp->displayed_user->id ?>" />
     277   
    277278    </form>
    278279<?php
     
    318319            echo '<a class="requested" href="' . $bp->loggedin_user->domain . $bp->friends->slug . '">' . __( 'Friendship Requested', 'buddypress' ) . '</a>';
    319320        } else if ( 'is_friend' == $friend_status ) {
    320             echo '<a href="' . $bp->loggedin_user->domain . $bp->friends->slug . '/remove-friend/' . $potential_friend_id . '" title="' . __('Cancel Friendship', 'buddypress') . '" id="friend-' . $potential_friend_id . '" rel="remove" class="remove">' . __('Cancel Friendship', 'buddypress') . '</a>';
     321            echo '<a href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/remove-friend/' . $potential_friend_id, 'friends_remove_friend' ) . '" title="' . __('Cancel Friendship', 'buddypress') . '" id="friend-' . $potential_friend_id . '" rel="remove" class="remove">' . __('Cancel Friendship', 'buddypress') . '</a>';
    321322        } else {
    322             echo '<a href="' . $bp->loggedin_user->domain . $bp->friends->slug . '/add-friend/' . $potential_friend_id . '" title="' . __('Add Friend', 'buddypress') . '" id="friend-' . $potential_friend_id . '" rel="add" class="add">' . __('Add Friend', 'buddypress') . '</a>';
     323            echo '<a href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/add-friend/' . $potential_friend_id, 'friends_add_friend' ) . '" title="' . __('Add Friend', 'buddypress') . '" id="friend-' . $potential_friend_id . '" rel="add" class="add">' . __('Add Friend', 'buddypress') . '</a>';
    323324        }
    324325        echo '</div>';
    325 
    326         // This causes duplicates, so it's not feasible as is.
    327         // if ( function_exists('wp_nonce_field') )
    328         //  wp_nonce_field('addremove_friend');
    329326    }
    330327}
  • trunk/bp-friends/js/general.js

    r608 r1032  
    5050                    action: 'friends_search',
    5151                    'cookie': encodeURIComponent(document.cookie),
    52                     '_wpnonce': jQuery("input#_wpnonce").val(),
     52                    '_wpnonce': jQuery("input#_wpnonce_friend_search").val(),
    5353
    5454                    'friend-search-box': jQuery("#friend-search-box").val()
  • trunk/bp-groups.php

    r1030 r1032  
    151151    if ( is_site_admin() ) {
    152152        /* Need to check db tables exist, activate hook no-worky in mu-plugins folder. */
    153         if ( false == ( $wpdb->get_var("SHOW TABLES LIKE '%" . $bp->groups->table_name . "%'") ) || ( get_site_option('bp-groups-db-version') < BP_GROUPS_DB_VERSION )  )
     153        if ( !$wpdb->get_var("SHOW TABLES LIKE '%" . $bp->groups->table_name . "%'") || ( get_site_option('bp-groups-db-version') < BP_GROUPS_DB_VERSION )  )
    154154            groups_install();
    155155           
    156         if ( ( function_exists('bp_wire_install') && false == $wpdb->get_var("SHOW TABLES LIKE '%" . $bp->groups->table_name_wire . "%'") ) || ( get_site_option('bp-groups-db-version') < BP_GROUPS_DB_VERSION ) )
     156        if ( ( function_exists('bp_wire_install') && !$wpdb->get_var("SHOW TABLES LIKE '%" . $bp->groups->table_name_wire . "%'") ) || ( get_site_option('bp-groups-db-version') < BP_GROUPS_DB_VERSION ) )
    157157            groups_wire_install();
    158158    }
     
    349349   
    350350    if ( !$create_group_step = $bp->action_variables[1] ) {
    351         $create_group_step = '1';
     351        $create_group_step = 1;
    352352        $completed_to_step = 0;
    353353       
     
    366366        $group_obj = new BP_Groups_Group( $_SESSION['group_obj_id'] );
    367367
    368         // If the user skipped the avatar step, move onto the next step and don't save anything.
    369         if ( isset( $_POST['skip'] ) && 3 == (int)$create_group_step ) {
     368        if ( !$group_id = groups_create_group( $create_group_step, $_SESSION['group_obj_id'] ) ) {
     369            bp_core_add_message( __('There was an error saving group details. Please try again.', 'buddypress'), 'error' );
     370            bp_core_redirect( $bp->loggedin_user->domain . $bp->groups->slug . '/create/step/' . $create_group_step );
     371        } else {
    370372            $create_group_step++;
    371373            $completed_to_step++;
    372374            $_SESSION['completed_to_step'] = $completed_to_step;
    373         } else {
    374            
    375             // We're done.
    376             if ( 4 == (int)$create_group_step )
    377                 bp_core_redirect( bp_group_permalink( $group_obj, false ) );
    378            
    379             if ( !$group_id = groups_create_group( $create_group_step, $_SESSION['group_obj_id'] ) ) {
    380                 bp_core_add_message( __('There was an error saving group details. Please try again.', 'buddypress'), 'error' );
    381                 bp_core_redirect( $bp->loggedin_user->domain . $bp->groups->slug . '/create/step/' . $create_group_step );
    382             } else {
    383                 $create_group_step++;
    384                 $completed_to_step++;
    385                 $_SESSION['completed_to_step'] = $completed_to_step;
    386                 $_SESSION['group_obj_id'] = $group_id;
    387             }
     375            $_SESSION['group_obj_id'] = $group_id;
    388376        }
     377       
     378        if ( $completed_to_step == 4 )
     379            bp_core_redirect( bp_group_permalink( $group_obj, false ) );
    389380    }
    390381
     
    852843            } else {
    853844                bp_core_add_message( __( 'The group was deleted successfully', 'buddypress' ) );
    854                 bp_core_redirect( site_url() . '/' . $bp->groups->slug . '/' );
     845                bp_core_redirect( $bp->loggedin_user->domain . $bp->groups->slug . '/' );
    855846            }
    856847
     
    13451336           
    13461337        switch ( $step ) {
    1347             case '1':
     1338            case '1':       
     1339                if ( !check_admin_referer( 'groups_step1_save' ) )
     1340                    return false;
     1341               
    13481342                if ( $_POST['group-name'] != '' && $_POST['group-desc'] != '' ) {
    13491343                    $group_obj->creator_id = $bp->loggedin_user->id;
     
    13951389           
    13961390            case '2':
     1391                if ( !check_admin_referer( 'groups_step2_save' ) )
     1392                    return false;
     1393
    13971394                $group_obj->status = 'public';
    13981395                $group_obj->is_invitation_only = 0;
     
    14351432           
    14361433            case '3':
    1437                                
     1434                if ( !check_admin_referer( 'groups_step3_save' ) )
     1435                    return false;
     1436               
     1437                if ( isset( $_POST['skip'] ) )
     1438                    return $group_obj->id;
     1439               
    14381440                // Image already cropped and uploaded, lets store a reference in the DB.
    14391441                if ( !wp_verify_nonce($_POST['nonce'], 'slick_avatars') || !$result = bp_core_avatar_cropstore( $_POST['orig'], $_POST['canvas'], $_POST['v1_x1'], $_POST['v1_y1'], $_POST['v1_w'], $_POST['v1_h'], $_POST['v2_x1'], $_POST['v2_y1'], $_POST['v2_w'], $_POST['v2_h'], false, 'groupavatar', $group_obj->id ) )
     
    14551457           
    14561458            case '4':
    1457                 $send_invites = groups_send_invites($group_obj);
     1459                if ( !check_admin_referer( 'groups_step4_save' ) )
     1460                    return false;
     1461                   
     1462                groups_send_invites( $group_obj, true );
    14581463               
    14591464                do_action( 'groups_created_group', $group_obj->id );
     
    15291534function groups_new_group_forum_post( $post_text, $topic_id ) {
    15301535    global $group_obj;
     1536
     1537    /* Check the nonce */
     1538    if ( !check_admin_referer( 'bp_forums_new_reply' ) )
     1539        return false;
    15311540   
    15321541    if ( $forum_post = bp_forums_new_post( $post_text, $topic_id ) ) {
     
    15471556function groups_new_group_forum_topic( $topic_title, $topic_text, $topic_tags, $forum_id ) {
    15481557    global $group_obj;
     1558
     1559    /* Check the nonce */   
     1560    if ( !check_admin_referer( 'bp_forums_new_topic' ) )
     1561        return false;
    15491562   
    15501563    if ( $topic = bp_forums_new_topic( $topic_title, $topic_text, $topic_tags, $forum_id ) ) {
     
    15651578function groups_invite_user( $user_id, $group_id ) {
    15661579    global $bp;
     1580
     1581    /* Check the nonce */
     1582    if ( !check_admin_referer( 'groups_invite_uninvite_user' ) )
     1583        return false;
    15671584   
    15681585    if ( groups_is_user_member( $user_id, $group_id ) )
     
    15841601}
    15851602
    1586 function groups_uninvite_user( $user_id, $group_id ) {
    1587     global $bp;
    1588 
     1603function groups_uninvite_user( $user_id, $group_id, $skip_check = false ) {
     1604    global $bp;
     1605
     1606    /* Because this is called on groups_leave_group() and a nonce has already been
     1607     * checked, we need a way of overriding a double check.
     1608     */
     1609    if ( !$skip_check ) {
     1610        if ( !check_admin_referer( 'groups_invite_uninvite_user' ) )
     1611            return false;
     1612    }
     1613   
    15891614    if ( !BP_Groups_Member::delete( $user_id, $group_id ) )
    15901615        return false;
     
    15971622function groups_accept_invite( $user_id, $group_id ) {
    15981623    global $group_obj;
     1624
     1625    /* Check the nonce */
     1626    if ( !check_admin_referer( 'groups_accept_invite' ) )
     1627        return false;
    15991628   
    16001629    if ( groups_is_user_member( $user_id, $group_id ) )
     
    16391668}
    16401669
    1641 function groups_send_invites( $group_obj ) {
    1642     global $bp;
    1643    
     1670function groups_send_invites( $group_obj, $skip_check = false ) {
     1671    global $bp;
     1672
     1673    if ( !$skip_check ) {
     1674        if ( !check_admin_referer( 'groups_send_invites' ) )
     1675            return false;
     1676    }
     1677
    16441678    // Send friend invites.
    16451679    $invited_users = groups_get_invites_for_group( $bp->loggedin_user->id, $group_obj->id );
    1646 
     1680   
    16471681    for ( $i = 0; $i < count( $invited_users ); $i++ ) {
    16481682        $member = new BP_Groups_Member( $invited_users[$i], $group_obj->id );
     
    16501684        $member->save();
    16511685    }
    1652    
     1686
    16531687    groups_notification_group_invites( $group_obj->id, $invited_users, $bp->loggedin_user->id );
    16541688   
     
    16631697    global $bp;
    16641698   
     1699    /* Check the nonce */   
     1700    if ( !check_admin_referer( 'groups_leave_group' ) )
     1701        return false;
     1702   
    16651703    if ( !$user_id )
    16661704        $user_id = $bp->loggedin_user->id;
     
    16711709       
    16721710    // This is exactly the same as deleting and invite, just is_confirmed = 1 NOT 0.
    1673     if ( !groups_uninvite_user( $user_id, $group_id ) )
     1711    if ( !groups_uninvite_user( $user_id, $group_id, true ) )
    16741712        return false;
    16751713
     
    16851723    global $bp;
    16861724   
     1725    /* Check the nonce */
     1726    if ( !check_admin_referer( 'groups_join_group' ) )
     1727        return false;
     1728       
    16871729    if ( !$user_id )
    16881730        $user_id = $bp->loggedin_user->id;
     
    17341776function groups_new_wire_post( $group_id, $content ) {
    17351777    global $group_obj;
    1736    
     1778
     1779    /* Check the nonce first. */
     1780    if ( !check_admin_referer( 'bp_wire_post' ) )
     1781        return false;
     1782
    17371783    $private = false;
    17381784    if ( $group_obj->status != 'public' )
     
    17511797    global $bp;
    17521798   
     1799    /* Check the nonce first. */
     1800    if ( !check_admin_referer( 'bp_wire_delete_link' ) )
     1801        return false;
     1802   
    17531803    if ( bp_wire_delete_post( $wire_post_id, 'groups', $table_name ) ) {       
    17541804        do_action( 'groups_deleted_wire_post', $wire_post_id );
     
    17621812    global $bp;
    17631813   
     1814    /* Check the nonce first. */
     1815    if ( !check_admin_referer( 'groups_edit_group_details' ) )
     1816        return false;
     1817   
    17641818    if ( empty( $group_name ) || empty( $group_desc ) )
    17651819        return false;
    1766        
     1820   
    17671821    $group = new BP_Groups_Group( $group_id, false, false );
    17681822    $group->name = $group_name;
     
    17831837function groups_edit_group_settings( $group_id, $enable_wire, $enable_forum, $enable_photos, $photos_admin_only, $status ) {
    17841838    global $bp;
     1839   
     1840    /* Check the nonce first. */
     1841    if ( !check_admin_referer( 'groups_edit_group_settings' ) )
     1842        return false;
    17851843   
    17861844    $group = new BP_Groups_Group( $group_id, false, false );
     
    18081866function groups_promote_member( $user_id, $group_id ) {
    18091867    global $bp;
     1868
     1869    /* Check the nonce first. */
     1870    if ( !check_admin_referer( 'groups_promote_member' ) )
     1871        return false;
    18101872   
    18111873    if ( !$bp->is_item_admin )
     
    18211883function groups_demote_member( $user_id, $group_id ) {
    18221884    global $bp;
     1885
     1886    /* Check the nonce first. */
     1887    if ( !check_admin_referer( 'groups_demote_member' ) )
     1888        return false;
    18231889   
    18241890    if ( !$bp->is_item_admin )
     
    18341900function groups_ban_member( $user_id, $group_id ) {
    18351901    global $bp;
     1902
     1903    /* Check the nonce first. */
     1904    if ( !check_admin_referer( 'groups_ban_member' ) )
     1905        return false;
    18361906   
    18371907    if ( !$bp->is_item_admin )
     
    18471917function groups_unban_member( $user_id, $group_id ) {
    18481918    global $bp;
     1919
     1920    /* Check the nonce first. */
     1921    if ( !check_admin_referer( 'groups_unban_member' ) )
     1922        return false;
    18491923   
    18501924    if ( !$bp->is_item_admin )
     
    18601934function groups_send_membership_request( $requesting_user_id, $group_id ) {
    18611935    global $bp;
     1936
     1937    /* Check the nonce first. */
     1938    if ( !check_admin_referer( 'groups_send_membership_request' ) )
     1939        return false;
    18621940
    18631941    $requesting_user = new BP_Groups_Member;
     
    18881966
    18891967function groups_accept_membership_request( $membership_id ) {
     1968   
     1969    /* Check the nonce first. */
     1970    if ( !check_admin_referer( 'groups_accept_membership_request' ) )
     1971        return false;
     1972
    18901973    $membership = new BP_Groups_Member( false, false, $membership_id );
    18911974    $membership->accept_request();
     
    19091992
    19101993function groups_reject_membership_request( $membership_id ) {
     1994
     1995    /* Check the nonce first. */
     1996    if ( !check_admin_referer( 'groups_reject_membership_request' ) )
     1997        return false;
     1998       
    19111999    $membership = new BP_Groups_Member( false, false, $membership_id );
    19122000   
     
    19352023function groups_delete_group( $group_id ) {
    19362024    global $bp;
     2025
     2026    /* Check the nonce first. */
     2027    if ( !check_admin_referer( 'groups_delete_group' ) )
     2028        return false;
    19372029   
    19382030    // Check the user is the group admin.
  • trunk/bp-groups/bp-groups-ajax.php

    r1025 r1032  
    33    global $bp;
    44
    5     check_ajax_referer('invite_user');
     5    check_ajax_referer( 'groups_invite_uninvite_user' );
    66
    77    if ( !$_POST['friend_id'] || !$_POST['friend_action'] || !$_POST['group_id'] )
     
    1515   
    1616    if ( 'invite' == $_POST['friend_action'] ) {
     17               
    1718        if ( !groups_invite_user( $_POST['friend_id'], $_POST['group_id'] ) )
    1819            return false;
     
    2526        echo '<span class="activity">' . sprintf( __( 'active %s ago', 'buddypress' ), $user->last_active ) . '</span>';
    2627        echo '<div class="action">
    27                 <a class="remove" href="' . $bp->loggedin_user->domain . $bp->groups->slug . '/' . $_POST['group_id'] . '/invites/remove/' . $user->id . '" id="uid-' . $user->id . '">' . __( 'Remove Invite', 'buddypress' ) . '</a>
     28                <a class="remove" href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->groups->slug . '/' . $_POST['group_id'] . '/invites/remove/' . $user->id, 'groups_invite_uninvite_user' ) . '" id="uid-' . $user->id . '">' . __( 'Remove Invite', 'buddypress' ) . '</a>
    2829              </div>';
    2930        echo '</li>';
    3031       
    3132    } else if ( 'uninvite' == $_POST['friend_action'] ) {
     33       
    3234        if ( !groups_uninvite_user( $_POST['friend_id'], $_POST['group_id'] ) )
    3335            return false;
    3436       
    3537        return true;
     38       
    3639    } else {
    3740        return false;
     
    4346    global $bp;
    4447
    45     check_ajax_referer('group-filter-box');
     48    check_ajax_referer( 'group-filter-box' );
    4649   
    4750    load_template( get_template_directory() . '/groups/group-loop.php' );
     
    140143
    141144        <div id="message" class="info">
    142             <p>This group has no members.</p>
     145            <p><?php _e( 'This group has no members.', 'buddypress' ) ?></p>
    143146        </div>
    144147
     
    186189
    187190        <div id="message" class="info">
    188             <p>This group has no members.</p>
     191            <p><?php _e( 'This group has no members.', 'buddypress' ) ?></p>
    189192        </div>
    190193
     
    297300   
    298301    if ( !groups_is_user_member( $bp->loggedin_user->id, $group->id ) ) {
    299    
     302
    300303        if ( 'public' == $group->status ) {
     304           
     305            check_ajax_referer( 'groups_join_group' );
     306           
    301307            if ( !groups_join_group( $group->id ) ) {
    302308                _e( 'Error joining group', 'buddypress' );
    303309            } else {
    304                 echo '<a id="group-' . $group->id . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . bp_group_permalink( $group, false ) . '/leave-group">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    305             }           
     310                echo '<a id="group-' . $group->id . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_group_permalink( $group, false ) . '/leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
     311            }   
     312                   
    306313        } else if ( 'private' == $group->status ) {
     314           
     315            check_ajax_referer( 'groups_send_membership_request' );
     316           
    307317            if ( !groups_send_membership_request( $bp->loggedin_user->id, $group->id ) ) {
    308318                _e( 'Error requesting membership', 'buddypress' ); 
     
    313323       
    314324    } else {
     325
     326        check_ajax_referer( 'groups_leave_group' );
     327
    315328        if ( !groups_leave_group( $group->id ) ) {
    316329            _e( 'Error leaving group', 'buddypress' );
    317330        } else {
    318331            if ( 'public' == $group->status ) {
    319                 echo '<a id="group-' . $group->id . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . bp_group_permalink( $group, false ) . '/join">' . __( 'Join Group', 'buddypress' ) . '</a>';               
     332                echo '<a id="group-' . $group->id . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_group_permalink( $group, false ) . '/join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';             
    320333            } else if ( 'private' == $group->status ) {
    321                 echo '<a id="group-' . $group->id . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . bp_group_permalink( $group, false ) . '/request-membership">' . __( 'Request Membership', 'buddypress' ) . '</a>';
     334                echo '<a id="group-' . $group->id . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . wp_nonce_url( bp_group_permalink( $group, false ) . '/request-membership', 'groups_send_membership_request' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>';
    322335            }
    323336        }
  • trunk/bp-groups/bp-groups-classes.php

    r1025 r1032  
    164164        }
    165165       
    166         if ( false == $wpdb->query($sql) )
     166        if ( false === $wpdb->query($sql) )
    167167            return false;
    168168       
  • trunk/bp-groups/bp-groups-templatetags.php

    r1025 r1032  
    688688    global $members_template, $groups_template, $bp;
    689689
    690     echo apply_filters( 'bp_group_member_promote_link', bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/promote/' . $members_template->member->user_id );
     690    echo apply_filters( 'bp_group_member_promote_link', wp_nonce_url( bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/promote/' . $members_template->member->user_id, 'groups_promote_member' ) );
    691691}
    692692
     
    697697        $user_id = $members_template->member->user_id;
    698698   
    699     echo apply_filters( 'bp_group_member_demote_link', bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/demote/' . $user_id );
     699    echo apply_filters( 'bp_group_member_demote_link', wp_nonce_url( bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/demote/' . $user_id, 'groups_demote_member' ) );
    700700}
    701701
     
    703703    global $members_template, $groups_template, $bp;
    704704   
    705     echo apply_filters( 'bp_group_member_ban_link', bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/ban/' . $members_template->member->user_id );
     705    echo apply_filters( 'bp_group_member_ban_link', wp_nonce_url( bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/ban/' . $members_template->member->user_id, 'groups_ban_member' ) );
    706706}
    707707
     
    709709    global $members_template, $groups_template, $bp;
    710710   
    711     echo apply_filters( 'bp_group_member_unban_link', bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/unban/' . $members_template->member->user_id );
     711    echo apply_filters( 'bp_group_member_unban_link', wp_nonce_url( bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/unban/' . $members_template->member->user_id, 'groups_unban_member' ) ); 
    712712}
    713713
     
    822822           
    823823            <p><input type="submit" value="<?php _e('Create Group and Continue', 'buddypress') ?> &raquo;" id="save" name="save"/></p>
     824           
     825            <?php wp_nonce_field( 'groups_step1_save' ) ?>
    824826        <?php break; ?>
    825827       
     
    867869
    868870                <p><input type="submit" value="<?php _e('Save and Continue', 'buddypress') ?> &raquo;" id="save" name="save"/></p>
     871
     872                <?php wp_nonce_field( 'groups_step2_save' ) ?>
    869873            <?php } else { ?>
    870874                <div id="message" class="info">
     
    895899                    </div>
    896900                </div>
     901               
     902                <?php wp_nonce_field( 'groups_step3_save' ) ?>
    897903            <?php } else { ?>
    898904                <div id="message" class="info">
     
    918924                } ?>
    919925               
    920                 <p class="clear"><input type="button" value="<?php _e('Finish', 'buddypress') ?> &raquo;" id="save" name="save" onclick="location.href='<?php echo $group_link ?>'" /></p>
     926                <p class="clear"><input type="submit" value="<?php _e('Finish', 'buddypress') ?> &raquo;" id="save" name="save" /></p>
     927               
     928                <?php wp_nonce_field( 'groups_step4_save' ) ?>
     929               
    921930                <?php
    922931            } else { ?>
     
    10181027    global $groups_template, $bp;
    10191028   
    1020     echo apply_filters( 'bp_group_accept_invite_link', $bp->loggedin_user->domain . $bp->groups->slug . '/invites/accept/' . $groups_template->group->id );
     1029    echo apply_filters( 'bp_group_accept_invite_link', wp_nonce_url( $bp->loggedin_user->domain . $bp->groups->slug . '/invites/accept/' . $groups_template->group->id, 'groups_accept_invite' ) );
    10211030}
    10221031
     
    10241033    global $groups_template, $bp;
    10251034   
    1026     echo apply_filters( 'bp_group_reject_invite_link', $bp->loggedin_user->domain . $bp->groups->slug . '/invites/reject/' . $groups_template->group->id );
     1035    echo apply_filters( 'bp_group_reject_invite_link', wp_nonce_url( $bp->loggedin_user->domain . $bp->groups->slug . '/invites/reject/' . $groups_template->group->id, 'groups_reject_invite' ) );
    10271036}
    10281037
     
    10421051    global $groups_template, $bp;
    10431052   
    1044     echo apply_filters( 'bp_group_leave_confirm_link', bp_group_permalink( false, true ) . '/leave-group/yes' );   
     1053    echo apply_filters( 'bp_group_leave_confirm_link', wp_nonce_url( bp_group_permalink( false, true ) . '/leave-group/yes', 'groups_leave_group' ) ); 
    10451054}
    10461055
     
    10601069        <h4><?php _e( 'Select Friends', 'buddypress' ) ?> <img id="ajax-loader" src="<?php echo $bp->groups->image_base ?>/ajax-loader.gif" height="7" alt="Loading" style="display: none;" /></h4>
    10611070        <?php bp_group_list_invite_friends() ?>
    1062         <?php wp_nonce_field( 'invite_user' ) ?>
     1071        <?php wp_nonce_field( 'groups_invite_uninvite_user', '_wpnonce_invite_uninvite_user' ) ?>
    10631072        <input type="hidden" name="group_id" id="group_id" value="<?php echo $group_obj->id ?>" />
    10641073    </div>
     
    10811090                    <span class="activity"><?php echo $user->last_active ?></span>
    10821091                    <div class="action">
    1083                         <a class="remove" href="<?php echo site_url() . $bp->groups->slug . '/' . $group_obj->id . '/invites/remove/' . $user->id ?>" id="uid-<?php echo $user->id ?>"><?php _e( 'Remove Invite', 'buddypress' ) ?></a>
     1092                        <a class="remove" href="<?php echo wp_nonce_url( site_url( $bp->groups->slug . '/' . $group_obj->id . '/invites/remove/' . $user->id ), 'groups_invite_uninvite_user' ) ?>" id="uid-<?php echo $user->id ?>"><?php _e( 'Remove Invite', 'buddypress' ) ?></a>
    10841093                    </div>
    10851094                </li>
     
    10871096        </ul>
    10881097       
     1098        <?php wp_nonce_field( 'groups_send_invites', '_wpnonce_send_invites' ) ?>
    10891099    </div>
    10901100<?php
     
    11301140        case 'public':
    11311141            if ( BP_Groups_Member::check_is_member( $bp->loggedin_user->id, $group->id ) )
    1132                 echo '<a class="leave-group" href="' . bp_group_permalink( $group, false ) . '/leave-group">' . __('Leave Group', 'buddypress') . '</a>';                                   
     1142                echo '<a class="leave-group" href="' . wp_nonce_url( bp_group_permalink( $group, false ) . '/leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';                                 
    11331143            else
    1134                 echo '<a class="join-group" href="' . bp_group_permalink( $group, false ) . '/join">' . __('Join Group', 'buddypress') . '</a>';                   
     1144                echo '<a class="join-group" href="' . wp_nonce_url( bp_group_permalink( $group, false ) . '/join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';                   
    11351145        break;
    11361146       
    11371147        case 'private':
    11381148            if ( BP_Groups_Member::check_is_member( $bp->loggedin_user->id, $group->id ) ) {
    1139                 echo '<a class="leave-group" href="' . bp_group_permalink( $group, false ) . '/leave-group">' . __('Leave Group', 'buddypress') . '</a>';                                       
     1149                echo '<a class="leave-group" href="' . wp_nonce_url( bp_group_permalink( $group, false ) . '/leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';                                     
    11401150            } else {
    11411151                if ( !bp_group_has_requested_membership( $group ) )
    1142                     echo '<a class="request-membership" href="' . bp_group_permalink( $group, false ) . '/request-membership">' . __('Request Membership', 'buddypress') . '</a>';     
     1152                    echo '<a class="request-membership" href="' . wp_nonce_url( bp_group_permalink( $group, false ) . '/request-membership', 'groups_send_membership_request' ) . '">' . __('Request Membership', 'buddypress') . '</a>';       
    11431153                else
    1144                     echo '<a class="membership-requested" href="' . bp_group_permalink( $group, false ) . '">' . __('Membership Requested', 'buddypress') . '</a>';             
     1154                    echo '<a class="membership-requested" href="' . bp_group_permalink( $group, false ) . '">' . __( 'Request Sent', 'buddypress' ) . '</a>';               
    11451155            }
    11461156        break;
  • trunk/bp-groups/js/directory-groups.js

    r719 r1032  
    66            jQuery("div#groups-list-options a").removeClass("selected");
    77            jQuery(this).addClass('selected');
     8            jQuery("input#groups_search").val('');
    89
    910            var letter = jQuery(this).attr('id')
     
    158159            gid = gid.split('-');
    159160            gid = gid[1];
    160 
     161           
     162            var nonce = jQuery(this).attr('href');
     163            nonce = nonce.split('?_wpnonce=');
     164            nonce = nonce[1].split('&');
     165            nonce = nonce[0];
     166           
    161167            var thelink = jQuery(this);
    162168
     
    164170                action: 'joinleave_group',
    165171                'cookie': encodeURIComponent(document.cookie),
    166                 'gid': gid
     172                'gid': gid,
     173                '_wpnonce': nonce
    167174            },
    168175            function(response)
  • trunk/bp-groups/js/general.js

    r612 r1032  
    2222                'friend_action': friend_action,
    2323                'cookie': encodeURIComponent(document.cookie),
    24                 '_wpnonce': jQuery("input#_wpnonce").val(),
     24                '_wpnonce': jQuery("input#_wpnonce_invite_uninvite_user").val(),
    2525                'friend_id': friend_id,
    2626                'group_id': jQuery("input#group_id").val()
     
    5555                'friend_action': 'uninvite',
    5656                'cookie': encodeURIComponent(document.cookie),
    57                 '_wpnonce': jQuery("input#_wpnonce").val(),
     57                '_wpnonce': jQuery("input#_wpnonce_invite_uninvite_user").val(),
    5858                'friend_id': friend_id,
    5959                'group_id': jQuery("input#group_id").val()
  • trunk/bp-messages.php

    r1030 r1032  
    123123    if ( is_site_admin() ) {
    124124        /* Need to check db tables exist, activate hook no-worky in mu-plugins folder. */
    125         if ( false == ( $wpdb->get_var( "SHOW TABLES LIKE '%{$bp->messages->table_name_messages}%'" ) ) || ( get_site_option('bp-messages-db-version') < BP_MESSAGES_DB_VERSION ) )
     125        if ( !$wpdb->get_var( "SHOW TABLES LIKE '%{$bp->messages->table_name_messages}%'" ) || ( get_site_option('bp-messages-db-version') < BP_MESSAGES_DB_VERSION ) )
    126126            messages_install();
    127127    }
     
    389389    global $bp, $current_user;
    390390   
     391    if ( !check_admin_referer( 'messages_send_message' ) )
     392        return false;
     393   
    391394    messages_add_callback_values( $recipients, $subject, $content );
    392395   
     
    515518
    516519function messages_send_notice( $subject, $message, $from_template ) {
     520   
     521   
    517522    if ( !is_site_admin() || empty( $subject ) || empty( $message ) ) {
    518523        return false;
     
    539544
    540545function messages_delete_thread( $thread_ids ) {
     546    if ( !check_admin_referer( 'messages_delete_thread' ) )
     547        return false;
     548   
    541549    if ( is_array($thread_ids) ) {
    542550        $error = 0;
     
    571579
    572580
    573 /**************************************************************************
    574  messages_view_thread()
    575  
    576  Displays a message thread.
    577  **************************************************************************/
    578 
    579 function messages_view_thread( $thread_id ) {
    580     global $bp;
    581 
    582     $thread = new BP_Messages_Thread( $thread_id, true );
    583    
    584     if ( !$thread->has_access ) {
    585         unset($_GET['mode']); ?>
    586         <div id="message" class="error">
    587             <p><?php _e( 'There was an error when viewing that message', 'buddypress' ) ?></p>
    588         </div>
    589     <?php   
    590     } else {
    591         if ( $thread->messages ) { ?>
    592             <?php $thread->mark_read() ?>
    593                
    594             <div class="wrap">
    595                 <h2 id="message-subject"><?php echo $thread->subject; ?></h2>
    596                 <table class="form-table">
    597                     <tbody>
    598                         <tr>
    599                             <td>
    600                                 <img src="<?php echo $bp->messages->image_base ?>/email_open.gif" alt="Message" style="vertical-align: top;" /> &nbsp;
    601                                 <?php _e('Sent between ', 'buddypress') ?> <?php echo BP_Messages_Thread::get_recipient_links($thread->recipients) ?>
    602                                 <?php _e('and', 'buddypress') ?> <?php echo bp_core_get_userlink($bp->loggedin_user->id) ?>.
    603                             </td>
    604                         </tr>
    605                     </tbody>
    606                 </table>
    607                
    608         <?php
    609             foreach ( $thread->messages as $message ) {
    610                 ?>
    611                     <a name="<?php echo 'm-' . $message->id ?>"></a>
    612                     <div class="message-box">
    613                         <div class="avatar-box">
    614                             <?php echo apply_filters( 'bp_message_sender_avatar', bp_core_get_avatar( $message->sender_id, 1 ) ) ?>
    615                             <h3><?php echo apply_filters( 'bp_message_sender_id', bp_core_get_userlink( $message->sender_id ) ) ?></h3>
    616                             <small><?php echo apply_filters( 'bp_message_date_sent', bp_format_time( strtotime($message->date_sent ) ) ) ?></small>
    617                         </div>
    618                         <?php echo apply_filters( 'bp_message_content', stripslashes($message->message) ); ?>
    619                         <div class="clear"></div>
    620                     </div>
    621                 <?php
    622             }
    623        
    624             ?>
    625                 <form id="send-reply" action="<?php echo get_option('home'); ?>/wp-admin/admin.php?page=bp-messages.php&amp;mode=send" method="post">
    626                     <div class="message-box">
    627                             <div id="messagediv">
    628                                 <div class="avatar-box">
    629                                     <?php if ( function_exists('bp_core_get_avatar') )
    630                                         echo bp_core_get_avatar($bp->loggedin_user->id, 1);
    631                                     ?>
    632                    
    633                                     <h3><?php _e("Reply: ", 'buddypress') ?></h3>
    634                                 </div>
    635                                 <label for="reply"></label>
    636                                 <div>
    637                                     <textarea name="content" id="message_content" rows="15" cols="40"><?php echo $content; ?></textarea>
    638                                 </div>
    639                             </div>
    640                             <p class="submit">
    641                                 <input type="submit" name="send" value="Send Reply &raquo;" id="send_reply_button"/>
    642                             </p>
    643                             <input type="hidden" id="thread_id" name="thread_id" value="<?php echo $thread->thread_id ?>" />
    644                             <input type="hidden" name="subject" id="subject" value="<?php _e('Re: ', 'buddypress'); echo str_replace( 'Re: ', '', $thread->last_message_subject); ?>" />
    645                     </div>
    646                     <?php if ( function_exists('wp_nonce_field') )
    647                         wp_nonce_field('messages_sendreply');
    648                     ?>
    649                 </form>
    650             </div>
    651             <?php
    652         }
    653     }
    654 }
    655581
    656582// List actions to clear super cached pages on, if super cache is installed
  • trunk/bp-messages/bp-messages-ajax.php

    r1021 r1032  
    44    global $bp;
    55   
    6     check_ajax_referer('messages_sendreply');
     6    check_ajax_referer( 'messages_send_message' );
    77   
    88    $result = messages_send_message($_REQUEST['send_to'], $_REQUEST['subject'], $_REQUEST['content'], $_REQUEST['thread_id'], true, false, true);
  • 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?>
  • trunk/bp-messages/js/general.php

    r920 r1032  
    4040                action: 'messages_send_reply',
    4141                'cookie': encodeURIComponent(document.cookie),
    42                 '_wpnonce': jQuery("input#_wpnonce").val(),
     42                '_wpnonce': jQuery("input#_wpnonce_send_message").val(),
    4343               
    4444                'content': jQuery("#message_content").val(),
  • trunk/bp-wire/bp-wire-templatetags.php

    r1025 r1032  
    304304    if ( ( $wire_posts_template->wire_post->user_id == $bp->loggedin_user->id ) || $bp->is_item_admin ) {
    305305        if ( $bp->wire->slug == $bp->current_component || $bp->profile->slug == $bp->current_component ) {
    306             echo apply_filters( 'bp_wire_delete_link', '<a href="' . $bp->displayed_user->domain . $bp->wire->slug . '/delete/' . $wire_posts_template->wire_post->id . '">[' . __('Delete', 'buddypress') . ']</a>' );
     306            echo apply_filters( 'bp_wire_delete_link', '<a href="' . wp_nonce_url( $bp->displayed_user->domain . $bp->wire->slug . '/delete/' . $wire_posts_template->wire_post->id, 'bp_wire_delete_link' ) . '">[' . __('Delete', 'buddypress') . ']</a>' );
    307307        } else {
    308             echo apply_filters( 'bp_wire_delete_link', '<a href="' . site_url() . '/' . $bp->{$bp->current_component}->slug . '/' . $uri . '/wire/delete/' . $wire_posts_template->wire_post->id . '">[' . __('Delete', 'buddypress') . ']</a>' );
     308            echo apply_filters( 'bp_wire_delete_link', '<a href="' . wp_nonce_url( site_url( $bp->{$bp->current_component}->slug . '/' . $uri . '/wire/delete/' . $wire_posts_template->wire_post->id ), 'bp_wire_delete_link' ) . '">[' . __('Delete', 'buddypress') . ']</a>' );
    309309        }
    310310    }
  • trunk/bp-xprofile.php

    r1030 r1032  
    188188
    189189    /* Need to check db tables exist, activate hook no-worky in mu-plugins folder. */
    190     if ( false == ( $wpdb->get_var("SHOW TABLES LIKE '%{$bp->profile->table_name_groups}%'") ) || ( get_site_option('bp-xprofile-db-version') < BP_XPROFILE_DB_VERSION )  )
     190    if ( !$wpdb->get_var("SHOW TABLES LIKE '%{$bp->profile->table_name_groups}%'") || ( get_site_option('bp-xprofile-db-version') < BP_XPROFILE_DB_VERSION )  )
    191191        xprofile_install();
    192192   
    193     if ( ( function_exists('bp_wire_install') && false == $wpdb->get_var( "SHOW TABLES LIKE '%{$bp->profile->table_name_wire}%'" ) ) || ( get_site_option('bp-xprofile-db-version') < BP_XPROFILE_DB_VERSION )  )
     193    if ( ( function_exists('bp_wire_install') && !$wpdb->get_var( "SHOW TABLES LIKE '%{$bp->profile->table_name_wire}%'" ) ) || ( get_site_option('bp-xprofile-db-version') < BP_XPROFILE_DB_VERSION )  )
    194194        xprofile_wire_install();
    195195}
     
    345345function xprofile_action_delete_avatar() {
    346346    global $bp;
    347    
     347
    348348    if ( 'delete-avatar' != $bp->current_action )
     349        return false;
     350
     351    if ( !check_admin_referer( 'bp_delete_avatar_link' ) )
    349352        return false;
    350353   
     
    370373function xprofile_action_new_wire_post() {
    371374    global $bp;
    372    
     375
    373376    if ( $bp->current_component != $bp->wire->slug )
    374377        return false;
     
    376379    if ( 'post' != $bp->current_action )
    377380        return false;
    378    
     381       
     382    /* Check the nonce */
     383    if ( !check_admin_referer( 'bp_wire_post' ) )
     384        return false;
     385       
    379386    if ( !$wire_post_id = bp_wire_new_post( $bp->displayed_user->id, $_POST['wire-post-textarea'], $bp->profile->slug, false, $bp->profile->table_name_wire ) ) {
    380387        bp_core_add_message( __('Wire message could not be posted. Please try again.', 'buddypress'), 'error' );
     
    625632                // Loop through each field in the group
    626633                for ( $j = 0; $j < count($group->fields); $j++ ) {
    627                    
     634                                       
    628635                    // Create a new field object for this field based on the field ID.
    629636                    $field = new BP_XProfile_Field( $group->fields[$j]->id );
     
    634641                    // If the user has submitted the form - validate and save the new value for this field
    635642                    if ( isset($_GET['mode']) && 'save' == $_GET['mode'] ) {
     643                       
     644                        /* Check the nonce */
     645                        if ( !check_admin_referer( 'bp_xprofile_edit' ) )
     646                            return false;
    636647                       
    637648                        // If the current field is a datebox, we need to append '_day' to the end of the field name
     
    719730                                <input type="submit" name="save" id="save" value="'.__('Save Changes &raquo;', 'buddypress').'" />
    720731                               </p>';
     732                           
     733                $list_html .= wp_nonce_field( 'bp_xprofile_edit' );
    721734
    722735                // If the user submitted the form to save new values, and there were errors, make sure we display them.
Note: See TracChangeset for help on using the changeset viewer.