How do I block access to forum landing page, forum containers and forum posts? I need only members to be able to access the forums. I have researched this to death and from what I can tell, I need to have at least three modules to achieve this.


Path access to block access to the core forum landing page at /forum (as it is not a node, entity nor view)
Forum Access module to block the top level forum containers
And Taxonomy Access or something like Node View Permissions to block access to the forum topics posts themselves.


Are you kidding me??? I need three permission modules just to stop anonymous users from looking and using the forums. Am I missing something here?
To control access top level forum containers, forum topics and forum content, you should use the forum_access module (you mention it for blocking containers, but it can also be used to block access to forum topics and content).

However, after installing this and denying the anonymous user role access to forums, this user still has access to the forum landing page (he or she will see a message that it is necessary to log in to access forums).

If you also need to block access to the core forum landing page, you need to add a small custom module that uses hook_menu_alter to set up a custom callback function to check the user id.  Since the anonymous user is assigned uid 0, you can use this to only grant users with a uid that is not 0 access to this menu item.

Here is all that is needed, stick this in noforumforanon.module:

/**
 * Implements hook_menu_alter.
 * Check access for forum menu item.
 */
function noforumforanon_menu_alter(&amp;$items) {
  $items['forum']['access callback'] = '_accesscheck';
}

/**
 * Callback to disallow access for anonymous users.
 */
function _accesscheck(){
  global $user;
  return $user-&gt;uid;
}


And this in  noforumforanon.info:

name = No Forum for Anonymous
description = Blocks anonymous from accessing the forum landing page.
package = Access control
core = 7.x


Put both files in a directory named noforumforanon below site/all/modules, enable and refresh cache, and the landing page shall be gone for anonymous.