Skip to:
Content

bbPress.org

Changeset 7350


Ignore:
Timestamp:
08/15/2025 05:18:54 PM (7 months ago)
Author:
johnjamesjacoby
Message:

Forums/Topics/Replies: Add capability checks for parent object IDs when users are creating & editing content theme-side.

This change introduces a series of matching capability checks to the new/edit handler functions, that ensure the currently logged in user can read the proposed parent location for their content.

This change includes checks for anonymous users (when enabled) mapping "read" checks for public forums/topics/replies to exist so they can continue to post the same as before.

It also removes a few private/hidden error messages and replaces them with more generic phasing, to minimize leakage about content that is not publicly accessible.

The intent with these changes is to account for and trap any mismatches between where content handler functions are listening vs. what the user has access to create new content inside of – if they cannot read it, they cannot create new content in it, and will now see errors letting them know.

In trunk, for 2.7.

Fixes #3650.

Location:
trunk/src/includes
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/forums/capabilities.php

    r7346 r7350  
    6262
    6363            // User cannot spectate
    64             if ( ! user_can( $user_id, 'spectate' ) ) {
     64            if ( ! user_can( $user_id, 'spectate' ) && ! bbp_is_anonymous() ) {
    6565                $caps = array( 'do_not_allow' );
    6666
     
    8282                    // Post is public
    8383                    if ( bbp_get_public_status_id() === $_post->post_status ) {
    84                         $caps = array( 'spectate' );
     84
     85                        // Anonymous users do not have caps, but can 'exist'
     86                        if ( bbp_is_anonymous() ) {
     87                            $caps = array( 'exist' );
     88
     89                        // Registered users need the 'spectate' cap
     90                        } else {
     91                            $caps = array( 'spectate' );
     92                        }
    8593
    8694                    // User is author so allow read
  • trunk/src/includes/forums/functions.php

    r7348 r7350  
    187187    /** Forum Parent **********************************************************/
    188188
    189     // Forum parent was passed (the norm)
    190     if ( ! empty( $_POST['bbp_forum_parent_id'] ) ) {
     189    // Forum parent is expected for theme-side submissions
     190    if ( ! empty( $_POST['bbp_forum_parent_id'] ) && is_numeric( $_POST['bbp_forum_parent_id'] ) ) {
    191191        $forum_parent_id = bbp_get_forum_id( $_POST['bbp_forum_parent_id'] );
    192192    }
     
    195195    $forum_parent_id = apply_filters( 'bbp_new_forum_pre_parent_id', $forum_parent_id );
    196196
    197     // No forum parent was passed (should never happen)
     197    // Forum parent was not passed (required for theme-side BuddyPress support)
    198198    if ( empty( $forum_parent_id ) ) {
    199199        bbp_add_error( 'bbp_new_forum_missing_parent', __( '<strong>Error</strong>: Your forum must have a parent.', 'bbpress' ) );
    200200
    201     // Forum exists
     201    // Forum parent exists
    202202    } elseif ( ! empty( $forum_parent_id ) ) {
    203203
    204         // Forum is a category
    205         if ( bbp_is_forum_category( $forum_parent_id ) ) {
    206             bbp_add_error( 'bbp_new_forum_forum_category', __( '<strong>Error</strong>: This forum is a category. No forums can be created in this forum.', 'bbpress' ) );
    207         }
    208 
    209         // Forum is closed and user cannot access
    210         if ( bbp_is_forum_closed( $forum_parent_id ) && ! current_user_can( 'edit_forum', $forum_parent_id ) ) {
    211             bbp_add_error( 'bbp_new_forum_forum_closed', __( '<strong>Error</strong>: This forum has been closed to new forums.', 'bbpress' ) );
    212         }
    213 
    214         // Forum is private and user cannot access
    215         if ( bbp_is_forum_private( $forum_parent_id ) && ! current_user_can( 'read_forum', $forum_parent_id ) ) {
    216             bbp_add_error( 'bbp_new_forum_forum_private', __( '<strong>Error</strong>: This forum is private and you do not have the capability to read or create new forums in it.', 'bbpress' ) );
    217         }
    218 
    219         // Forum is hidden and user cannot access
    220         if ( bbp_is_forum_hidden( $forum_parent_id ) && ! current_user_can( 'read_forum', $forum_parent_id ) ) {
    221             bbp_add_error( 'bbp_new_forum_forum_hidden', __( '<strong>Error</strong>: This forum is hidden and you do not have the capability to read or create new forums in it.', 'bbpress' ) );
     204        // Forum parent not editable by user
     205        if ( ! current_user_can( 'edit_forum', $forum_parent_id ) ) {
     206
     207            // Forum parent is closed
     208            if ( bbp_is_forum_closed( $forum_parent_id ) ) {
     209                bbp_add_error( 'bbp_new_forum_forum_closed', __( '<strong>Error</strong>: This forum is closed to new forums.', 'bbpress' ) );
     210            }
     211        }
     212
     213        // Forum parent not readable by user
     214        if ( ! current_user_can( 'read_forum', $forum_parent_id ) ) {
     215            bbp_add_error( 'bbp_new_forum_forum_read', __( '<strong>Error</strong>: You do not have the capability to create new forums in this forum.', 'bbpress' ) );
    222216        }
    223217    }
     
    429423
    430424    // Forum parent id was passed
    431     if ( ! empty( $_POST['bbp_forum_parent_id'] ) ) {
     425    if ( ! empty( $_POST['bbp_forum_parent_id'] ) && is_numeric( $_POST['bbp_forum_parent_id'] ) ) {
    432426        $forum_parent_id = bbp_get_forum_id( $_POST['bbp_forum_parent_id'] );
    433427    }
     
    436430    $current_parent_forum_id = bbp_get_forum_parent_id( $forum_id );
    437431
    438     // Forum exists
     432    // Forum parent exists
    439433    if ( ! empty( $forum_parent_id ) && ( $forum_parent_id !== $current_parent_forum_id ) ) {
    440434
    441         // Forum is closed and user cannot access
    442         if ( bbp_is_forum_closed( $forum_parent_id ) && ! current_user_can( 'edit_forum', $forum_parent_id ) ) {
    443             bbp_add_error( 'bbp_edit_forum_forum_closed', __( '<strong>Error</strong>: This forum has been closed to new forums.', 'bbpress' ) );
    444         }
    445 
    446         // Forum is private and user cannot access
    447         if ( bbp_is_forum_private( $forum_parent_id ) && ! current_user_can( 'read_forum', $forum_parent_id ) ) {
    448             bbp_add_error( 'bbp_edit_forum_forum_private', __( '<strong>Error</strong>: This forum is private and you do not have the capability to read or create new forums in it.', 'bbpress' ) );
    449         }
    450 
    451         // Forum is hidden and user cannot access
    452         if ( bbp_is_forum_hidden( $forum_parent_id ) && ! current_user_can( 'read_forum', $forum_parent_id ) ) {
    453             bbp_add_error( 'bbp_edit_forum_forum_hidden', __( '<strong>Error</strong>: This forum is hidden and you do not have the capability to read or create new forums in it.', 'bbpress' ) );
     435        // Forum parent not editable by user
     436        if ( ! current_user_can( 'edit_forum', $forum_parent_id ) ) {
     437
     438            // Forum is closed
     439            if ( bbp_is_forum_closed( $forum_parent_id ) ) {
     440                bbp_add_error( 'bbp_edit_forum_forum_closed', __( '<strong>Error</strong>: This forum is closed to new forums.', 'bbpress' ) );
     441            }
     442        }
     443
     444        // Forum parent not readable by user
     445        if ( ! current_user_can( 'read_forum', $forum_parent_id ) ) {
     446            bbp_add_error( 'bbp_edit_forum_forum_read', __( '<strong>Error</strong>: You do not have the capability to create new forums in this forum.', 'bbpress' ) );
    454447        }
    455448    }
  • trunk/src/includes/replies/capabilities.php

    r6975 r7350  
    5252
    5353            // User cannot spectate
    54             if ( ! user_can( $user_id, 'spectate' ) ) {
     54            if ( ! user_can( $user_id, 'spectate' ) && ! bbp_is_anonymous() ) {
    5555                $caps = array( 'do_not_allow' );
    5656
     
    7272                    // Post is public
    7373                    if ( bbp_get_public_status_id() === $_post->post_status ) {
    74                         $caps = array( 'spectate' );
     74
     75                        // Anonymous users do not have caps, but can 'exist'
     76                        if ( bbp_is_anonymous() ) {
     77                            $caps = array( 'exist' );
     78
     79                        // Registered users need the 'spectate' cap
     80                        } else {
     81                            $caps = array( 'spectate' );
     82                        }
    7583
    7684                    // User is author so allow read
  • trunk/src/includes/replies/functions.php

    r7326 r7350  
    180180        $posted_topic_id = intval( $_POST['bbp_topic_id'] );
    181181
     182        // Topic id is 0
     183        if ( 0 === $posted_topic_id ) {
     184            bbp_add_error( 'bbp_reply_topic_id', __( '<strong>Error</strong>: Topic ID is missing.', 'bbpress' ) );
     185
    182186        // Topic id is a negative number
    183         if ( 0 > $posted_topic_id ) {
     187        } elseif ( 0 > $posted_topic_id ) {
    184188            bbp_add_error( 'bbp_reply_topic_id', __( '<strong>Error</strong>: Topic ID cannot be a negative number.', 'bbpress' ) );
    185189
     
    194198    }
    195199
     200    // User cannot read parent topic ID
     201    if ( ! current_user_can( 'read_topic', $topic_id ) ) {
     202        bbp_add_error( 'bbp_new_reply_topic_public', __( '<strong>Error</strong>: You do not have the capability to read or create new replies in this topic.', 'bbpress' ) );
     203    }
     204
    196205    /** Forum ID **************************************************************/
    197206
     
    217226            $posted_forum_id = intval( $_POST['bbp_forum_id'] );
    218227
    219             // Forum id is empty
     228            // Forum id is 0
    220229            if ( 0 === $posted_forum_id ) {
    221                 bbp_add_error( 'bbp_topic_forum_id', __( '<strong>Error</strong>: Forum ID is missing.', 'bbpress' ) );
     230                bbp_add_error( 'bbp_reply_forum_id', __( '<strong>Error</strong>: Forum ID is missing.', 'bbpress' ) );
    222231
    223232            // Forum id is a negative number
    224233            } elseif ( 0 > $posted_forum_id ) {
    225                 bbp_add_error( 'bbp_topic_forum_id', __( '<strong>Error</strong>: Forum ID cannot be a negative number.', 'bbpress' ) );
     234                bbp_add_error( 'bbp_reply_forum_id', __( '<strong>Error</strong>: Forum ID cannot be a negative number.', 'bbpress' ) );
    226235
    227236            // Forum does not exist
    228237            } elseif ( ! bbp_get_forum( $posted_forum_id ) ) {
    229                 bbp_add_error( 'bbp_topic_forum_id', __( '<strong>Error</strong>: Forum does not exist.', 'bbpress' ) );
     238                bbp_add_error( 'bbp_reply_forum_id', __( '<strong>Error</strong>: Forum does not exist.', 'bbpress' ) );
    230239
    231240            // Use the POST'ed forum id
     
    246255        } else {
    247256
    248             // Forum is closed and user cannot access
    249             if ( bbp_is_forum_closed( $forum_id ) && ! current_user_can( 'edit_forum', $forum_id ) ) {
    250                 bbp_add_error( 'bbp_new_reply_forum_closed', __( '<strong>Error</strong>: This forum has been closed to new replies.', 'bbpress' ) );
     257            // Forum not editable by user
     258            if ( ! current_user_can( 'edit_forum', $forum_id ) ) {
     259
     260                // Forum is closed
     261                if ( bbp_is_forum_closed( $forum_id ) ) {
     262                    bbp_add_error( 'bbp_new_reply_forum_closed', __( '<strong>Error</strong>: This forum is closed to new replies.', 'bbpress' ) );
     263                }
    251264            }
    252265
    253             // Forum is private and user cannot access
    254             if ( bbp_is_forum_private( $forum_id ) && ! current_user_can( 'read_forum', $forum_id ) ) {
    255                 bbp_add_error( 'bbp_new_reply_forum_private', __( '<strong>Error</strong>: This forum is private and you do not have the capability to read or create new replies in it.', 'bbpress' ) );
    256 
    257             // Forum is hidden and user cannot access
    258             } elseif ( bbp_is_forum_hidden( $forum_id ) && ! current_user_can( 'read_forum', $forum_id ) ) {
    259                 bbp_add_error( 'bbp_new_reply_forum_hidden', __( '<strong>Error</strong>: This forum is hidden and you do not have the capability to read or create new replies in it.', 'bbpress' ) );
     266            // Forum not readable by user
     267            if ( ! current_user_can( 'read_forum', $forum_id ) ) {
     268                bbp_add_error( 'bbp_new_reply_forum_read', __( '<strong>Error</strong>: You do not have the capability to read or create new replies in this forum.', 'bbpress' ) );
    260269            }
    261270        }
     
    269278        remove_filter( 'bbp_new_reply_pre_content', 'bbp_encode_bad',  10 );
    270279        remove_filter( 'bbp_new_reply_pre_content', 'bbp_filter_kses', 30 );
     280    }
     281
     282    /** Reply To **************************************************************/
     283
     284    // Handle Reply To of the reply; $_REQUEST for non-JS submissions
     285    if ( isset( $_REQUEST['bbp_reply_to'] ) && is_numeric( $_REQUEST['bbp_reply_to'] ) ) {
     286        $reply_to = bbp_validate_reply_to( $_REQUEST['bbp_reply_to'] );
     287    }
     288
     289    // Check the Reply To ID
     290    if ( ! empty( $reply_to ) ) {
     291
     292        // User cannot read parent reply ID
     293        if ( ! current_user_can( 'read_reply', $reply_to ) ) {
     294            bbp_add_error( 'bbp_new_reply_reply_to', __( '<strong>Error</strong>: You do not have the capability to read or create new replies to this reply.', 'bbpress' ) );
     295        }
    271296    }
    272297
     
    333358    if ( bbp_is_topic_pending( $topic_id ) || ! bbp_check_for_moderation( $anonymous_data, $reply_author, $reply_title, $reply_content ) ) {
    334359        $reply_status = bbp_get_pending_status_id();
    335     }
    336 
    337     /** Reply To **************************************************************/
    338 
    339     // Handle Reply To of the reply; $_REQUEST for non-JS submissions
    340     if ( isset( $_REQUEST['bbp_reply_to'] ) ) {
    341         $reply_to = bbp_validate_reply_to( $_REQUEST['bbp_reply_to'] );
    342360    }
    343361
     
    575593    $topic_id = bbp_get_reply_topic_id( $reply_id );
    576594
     595    // User cannot read parent topic ID
     596    if ( ! current_user_can( 'read_topic', $topic_id ) ) {
     597        bbp_add_error( 'bbp_edit_reply_topic_read', __( '<strong>Error</strong>: You do not have the capability to read or create new replies in this topic.', 'bbpress' ) );
     598    }
     599
    577600    /** Topic Forum ***********************************************************/
    578601
     
    589612        } else {
    590613
    591             // Forum is closed and user cannot access
    592             if ( bbp_is_forum_closed( $forum_id ) && ! current_user_can( 'edit_forum', $forum_id ) ) {
    593                 bbp_add_error( 'bbp_edit_reply_forum_closed', __( '<strong>Error</strong>: This forum has been closed to new replies.', 'bbpress' ) );
     614            // Forum not editable by user
     615            if ( ! current_user_can( 'edit_forum', $forum_id ) ) {
     616
     617                // Forum is closed
     618                if ( bbp_is_forum_closed( $forum_id ) ) {
     619                    bbp_add_error( 'bbp_edit_reply_forum_closed', __( '<strong>Error</strong>: This forum is closed to new replies.', 'bbpress' ) );
     620                }
    594621            }
    595622
    596             // Forum is private and user cannot access
    597             if ( bbp_is_forum_private( $forum_id ) && ! current_user_can( 'read_forum', $forum_id ) ) {
    598                 bbp_add_error( 'bbp_edit_reply_forum_private', __( '<strong>Error</strong>: This forum is private and you do not have the capability to read or create new replies in it.', 'bbpress' ) );
    599 
    600             // Forum is hidden and user cannot access
    601             } elseif ( bbp_is_forum_hidden( $forum_id ) && ! current_user_can( 'read_forum', $forum_id ) ) {
    602                 bbp_add_error( 'bbp_edit_reply_forum_hidden', __( '<strong>Error</strong>: This forum is hidden and you do not have the capability to read or create new replies in it.', 'bbpress' ) );
     623            // Forum not readable by user
     624            if ( ! current_user_can( 'read_forum', $forum_id ) ) {
     625                bbp_add_error( 'bbp_edit_reply_forum_read', __( '<strong>Error</strong>: You do not have the capability to read or create new replies in this forum.', 'bbpress' ) );
    603626            }
     627        }
     628    }
     629
     630    /** Reply To **************************************************************/
     631
     632    $reply_to = bbp_get_reply_to( $reply_id );
     633
     634    // Maybe sanitize Reply To, using $_REQUEST for non-JS submissions
     635    if ( isset( $_REQUEST['bbp_reply_to'] ) && is_numeric( $_REQUEST['bbp_reply_to'] ) ) {
     636        $reply_to = intval( $_REQUEST['bbp_reply_to'] );
     637    }
     638
     639    // Validate Reply To
     640    $reply_to = bbp_validate_reply_to( $reply_to, $reply_id );
     641
     642    // Check the Reply To ID
     643    if ( ! empty( $reply_to ) ) {
     644
     645        // User cannot read parent reply ID
     646        if ( ! current_user_can( 'read_reply', $reply_to ) ) {
     647            bbp_add_error( 'bbp_edit_reply_reply_to', __( '<strong>Error</strong>: You do not have the capability to read or create new replies to this reply.', 'bbpress' ) );
    604648        }
    605649    }
     
    662706            bbp_add_error( 'bbp_edit_reply_status', __( '<strong>Error</strong>: You do not have permission to do that.', 'bbpress' ) );
    663707        }
    664     }
    665 
    666     /** Reply To **************************************************************/
    667 
    668     // Handle Reply To of the reply; $_REQUEST for non-JS submissions
    669     if ( isset( $_REQUEST['bbp_reply_to'] ) && current_user_can( 'moderate', $reply_id ) ) {
    670         $reply_to = bbp_validate_reply_to( $_REQUEST['bbp_reply_to'], $reply_id );
    671     } elseif ( bbp_thread_replies() ) {
    672         $reply_to = bbp_get_reply_to( $reply_id );
    673708    }
    674709
  • trunk/src/includes/topics/capabilities.php

    r6975 r7350  
    7272
    7373            // User cannot spectate
    74             if ( ! user_can( $user_id, 'spectate' ) ) {
     74            if ( ! user_can( $user_id, 'spectate' ) && ! bbp_is_anonymous() ) {
    7575                $caps = array( 'do_not_allow' );
    7676
     
    9292                    // Post is public
    9393                    if ( bbp_get_public_status_id() === $_post->post_status ) {
    94                         $caps = array( 'spectate' );
     94
     95                        // Anonymous users do not have caps, but can 'exist'
     96                        if ( bbp_is_anonymous() ) {
     97                            $caps = array( 'exist' );
     98
     99                        // Registered users need the 'spectate' cap
     100                        } else {
     101                            $caps = array( 'spectate' );
     102                        }
    95103
    96104                    // User is author so allow read
  • trunk/src/includes/topics/functions.php

    r7318 r7350  
    197197            $posted_forum_id = intval( $_POST['bbp_forum_id'] );
    198198
    199             // Forum id is empty
     199            // Forum id is 0
    200200            if ( 0 === $posted_forum_id ) {
    201201                bbp_add_error( 'bbp_topic_forum_id', __( '<strong>Error</strong>: Forum ID is missing.', 'bbpress' ) );
     
    226226        } else {
    227227
    228             // Forum is closed and user cannot access
    229             if ( bbp_is_forum_closed( $forum_id ) && ! current_user_can( 'edit_forum', $forum_id ) ) {
    230                 bbp_add_error( 'bbp_new_topic_forum_closed', __( '<strong>Error</strong>: This forum has been closed to new topics.', 'bbpress' ) );
     228            // Forum not editable by user
     229            if ( ! current_user_can( 'edit_forum', $forum_id ) ) {
     230
     231                // Forum is closed
     232                if ( bbp_is_forum_closed( $forum_id ) ) {
     233                    bbp_add_error( 'bbp_new_topic_forum_closed', __( '<strong>Error</strong>: This forum is closed to new topics.', 'bbpress' ) );
     234                }
    231235            }
    232236
    233             // Forum is private and user cannot access
    234             if ( bbp_is_forum_private( $forum_id ) && ! current_user_can( 'read_forum', $forum_id ) ) {
    235                 bbp_add_error( 'bbp_new_topic_forum_private', __( '<strong>Error</strong>: This forum is private and you do not have the capability to read or create new topics in it.', 'bbpress' ) );
    236 
    237             // Forum is hidden and user cannot access
    238             } elseif ( bbp_is_forum_hidden( $forum_id ) && ! current_user_can( 'read_forum', $forum_id ) ) {
    239                 bbp_add_error( 'bbp_new_topic_forum_hidden', __( '<strong>Error</strong>: This forum is hidden and you do not have the capability to read or create new topics in it.', 'bbpress' ) );
     237            // Forum not readable by user
     238            if ( ! current_user_can( 'read_forum', $forum_id ) ) {
     239                bbp_add_error( 'bbp_new_topic_forum_read', __( '<strong>Error</strong>: You do not have the capability to read or create new topics in this forum.', 'bbpress' ) );
    240240            }
    241241        }
     
    500500    // Forum id was passed
    501501    } elseif ( is_numeric( $_POST['bbp_forum_id'] ) ) {
    502         $forum_id = (int) $_POST['bbp_forum_id'];
     502
     503        // Get the forum id
     504        $posted_forum_id = intval( $_POST['bbp_forum_id'] );
     505
     506        // Forum id is 0
     507        if ( 0 === $posted_forum_id ) {
     508            bbp_add_error( 'bbp_topic_forum_id', __( '<strong>Error</strong>: Forum ID is missing.', 'bbpress' ) );
     509
     510        // Forum id is a negative number
     511        } elseif ( 0 > $posted_forum_id ) {
     512            bbp_add_error( 'bbp_topic_forum_id', __( '<strong>Error</strong>: Forum ID cannot be a negative number.', 'bbpress' ) );
     513
     514        // Forum does not exist
     515        } elseif ( ! bbp_get_forum( $posted_forum_id ) ) {
     516            bbp_add_error( 'bbp_topic_forum_id', __( '<strong>Error</strong>: Forum does not exist.', 'bbpress' ) );
     517
     518        // Use the POST'ed forum id
     519        } else {
     520            $forum_id = $posted_forum_id;
     521        }
    503522    }
    504523
     
    506525    $current_forum_id = bbp_get_topic_forum_id( $topic_id );
    507526
     527    // Forum change
     528    if ( $forum_id !== $current_forum_id ) {
     529
     530        // User cannot edit current forum
     531        if ( ! current_user_can( 'edit_forum', $current_forum_id ) ) {
     532            bbp_add_error( 'bbp_edit_topic_forum_move_old', __( '<strong>Error</strong>: You do not have the capability to move topics out of this forum.', 'bbpress' ) );
     533
     534        // User cannot read new forum
     535        } elseif ( ! current_user_can( 'read_forum', $forum_id ) ) {
     536            bbp_add_error( 'bbp_edit_topic_forum_move_new', __( '<strong>Error</strong>: You do not have the capability to move topics into this forum.', 'bbpress' ) );
     537        }
     538    }
     539
    508540    // Forum exists
    509     if ( ! empty( $forum_id ) && ( $forum_id !== $current_forum_id ) ) {
     541    if ( ! empty( $forum_id ) ) {
    510542
    511543        // Forum is a category
     
    516548        } else {
    517549
    518             // Forum is closed and user cannot access
    519             if ( bbp_is_forum_closed( $forum_id ) && ! current_user_can( 'edit_forum', $forum_id ) ) {
    520                 bbp_add_error( 'bbp_edit_topic_forum_closed', __( '<strong>Error</strong>: This forum has been closed to new topics.', 'bbpress' ) );
     550            // Forum not editable by user
     551            if ( ! current_user_can( 'edit_forum', $forum_id ) ) {
     552
     553                // Forum is closed
     554                if ( bbp_is_forum_closed( $forum_id ) ) {
     555                    bbp_add_error( 'bbp_edit_topic_forum_closed', __( '<strong>Error</strong>: This forum is closed to new topics.', 'bbpress' ) );
     556                }
    521557            }
    522558
    523             // Forum is private and user cannot access
    524             if ( bbp_is_forum_private( $forum_id ) && ! current_user_can( 'read_forum', $forum_id ) ) {
    525                 bbp_add_error( 'bbp_edit_topic_forum_private', __( '<strong>Error</strong>: This forum is private and you do not have the capability to read or create new topics in it.', 'bbpress' ) );
    526 
    527             // Forum is hidden and user cannot access
    528             } elseif ( bbp_is_forum_hidden( $forum_id ) && ! current_user_can( 'read_forum', $forum_id ) ) {
    529                 bbp_add_error( 'bbp_edit_topic_forum_hidden', __( '<strong>Error</strong>: This forum is hidden and you do not have the capability to read or create new topics in it.', 'bbpress' ) );
     559            // Forum not readable by user
     560            if ( ! current_user_can( 'read_forum', $forum_id ) ) {
     561                bbp_add_error( 'bbp_edit_topic_forum_read', __( '<strong>Error</strong>: You do not have the capability to read or create new topics in this forum.', 'bbpress' ) );
    530562            }
    531563        }
Note: See TracChangeset for help on using the changeset viewer.