BP_REST_Forums_Endpoint::can_access_content( int $forum_id, bool $create = false )

Check current access permission.

Description

Parameters

$forum_id

(int) (Required) ID of the forum.

$create

(bool) (Optional) force validate.

Default value: false

Return

(bool)

Source

File: bp-forums/classes/class-bp-rest-forums-endpoint.php

	public function can_access_content( $forum_id, $create = false ) {

		if (
			function_exists( 'bbp_is_forum_group_forum' )
			&& bbp_is_forum_group_forum( $forum_id )
		) {
			$group_ids = bbp_get_forum_group_ids( $forum_id );
			$user_id   = get_current_user_id();
			$flag      = false;
			if ( ! empty( $group_ids ) ) {
				foreach ( $group_ids as $group_id ) {

					if ( function_exists( 'bp_is_active' ) && bp_is_active( 'groups' ) ) {

						// if we checking access for showing forums, topic and replies then we need to check group is public or not.
						if ( ! $create ) {
							$group = groups_get_group( $group_id );
							if ( 'public' === $group->status ) {
								$flag = true;
							}
						}

						if (
							groups_is_user_member( $user_id, $group_id )
							|| groups_is_user_mod( $user_id, $group_id )
							|| groups_is_user_admin( $user_id, $group_id )
							|| bbp_is_user_keymaster( $user_id )
						) {
							$flag = true;
						}
					}
				}
			}

			return $flag;

		} elseif (
			empty( $forum_id )
			|| ! bbp_user_can_view_forum(
				array(
					'forum_id' => $forum_id,
				)
			)
		) {
			return false;
		} else {
			return true;
		}
	}

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.