bbp_forum_enforce_private()

Check if it’s a private forum or a topic or reply of a private forum and if the user can’t view it, then sets a 404

Description

Source

File: bp-forums/forums/functions.php

function bbp_forum_enforce_private() {

	// Bail if not viewing a single item or if user has caps
	if ( !is_singular() || bbp_is_user_keymaster() || current_user_can( 'read_private_forums' ) )
		return;

	global $wp_query;

	// Define local variable
	$forum_id = 0;

	// Check post type
	switch ( $wp_query->get( 'post_type' ) ) {

		// Forum
		case bbp_get_forum_post_type() :
			$forum_id = bbp_get_forum_id( $wp_query->post->ID );
			break;

		// Topic
		case bbp_get_topic_post_type() :
			$forum_id = bbp_get_topic_forum_id( $wp_query->post->ID );
			break;

		// Reply
		case bbp_get_reply_post_type() :
			$forum_id = bbp_get_reply_forum_id( $wp_query->post->ID );
			break;

	}

	// If forum is explicitly hidden and user not capable, set 404
	if ( !empty( $forum_id ) && bbp_is_forum_private( $forum_id ) && !current_user_can( 'read_private_forums' ) )
		bbp_set_404();
}

Changelog

Changelog
Version Description
bbPress (r2996) Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.