diff --git b/wp-content/plugins/bbpress/includes/extend/buddypress/groups.php a/wp-content/plugins/bbpress/includes/extend/buddypress/groups.php
index c636f99f67..c4c10c43e8 100644
--- b/wp-content/plugins/bbpress/includes/extend/buddypress/groups.php
+++ a/wp-content/plugins/bbpress/includes/extend/buddypress/groups.php
@@ -104,6 +104,13 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
 
 		// Adds a hidden input value to the "Group Settings" page
 		add_action( 'bp_before_group_settings_admin', array( $this, 'group_settings_hidden_field'     ) );
+
+		// Do the following on a group forum page.
+		if ( function_exists( 'bp_core_get_query_parser' ) && 'rewrites' === bp_core_get_query_parser() ) {
+			add_action( 'bp_parse_query',             array( $this, 'on_group_forum_page' ) );
+		} else {
+			$this->on_group_forum_page();
+		}
 	}
 
 	/**
@@ -144,11 +151,20 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
 		// Restrict private and hidden group forums outside of group requests
 		add_filter( 'bbp_map_meta_caps',              array( $this, 'map_group_forum_read_meta_caps' ), 20, 4 );
 		add_filter( 'bbp_get_excluded_forum_ids',     array( $this, 'exclude_group_forum_ids'        ), 20    );
+	}
 
-		/** Caps **************************************************************/
-
+	/**
+	 * Do the following on a group forum page.
+	 *
+	 * @since X
+	 */
+	public function on_group_forum_page() {
 		// Only add these filters if inside a group forum
 		if ( bp_is_single_item() && bp_is_group() && bp_is_current_action( $this->slug ) ) {
+			// Remove exclude forum IDs filter if group is public or if user is a group member.
+			if ( 'public' === bp_get_group_status( groups_get_current_group() ) || false !== groups_is_user_member( get_current_user_id(), bp_get_current_group_id() ) ) {
+				remove_filter( 'bbp_get_excluded_forum_ids', array( $this, 'exclude_group_forum_ids' ), 20 );
+			}
 
 			// Ensure bbp_is_single_forum() returns true on group forums.
 			add_filter( 'bbp_is_single_forum', array( $this, 'is_single_forum' ) );
@@ -402,6 +418,15 @@ class BBP_Forums_Group_Extension extends BP_Group_Extension {
 	 * @return array
 	 */
 	public function map_group_forum_meta_caps( $caps = array(), $cap = '', $user_id = 0, $args = array() ) {
+		$caps_to_check = [
+			'publish_replies', 'publish_topics', 'moderate', 'edit_topic', 'edit_reply', 'view_trash', 'edit_others_replies', 'edit_others_topics', 'delete_topic', 'delete_reply', 'manage_forum_attributes'
+		];
+
+		// If not checking our caps, bail.
+		if ( ! in_array( $cap, $caps_to_check ) ) {
+			return $caps;
+		}
+
 		// Group request state only describes the logged-in user
 		if ( bbp_get_current_user_id() !== (int) $user_id ) {
 			return (array) apply_filters( 'bbp_map_group_forum_topic_meta_caps', $caps, $cap, $user_id, $args );
