diff -Naur ../drupal/modules/forum/forum.module ./modules/forum/forum.module --- ../drupal/modules/forum/forum.module 2007-08-08 02:27:22.000000000 -0400 +++ ./modules/forum/forum.module 2007-12-10 12:34:14.986201561 -0500 @@ -709,6 +709,17 @@ */ function forum_get_forums($tid = 0) { + // This caching breaks forum access! The results of db_rewrite_sql will + // be cached, meaning the first user to load this node after a cache + // refresh will set the permissions for everyone. If you are using a module + // that does query rewriting on forum queries, don't use this patch. + // If you're not sure whether or not this is the case, don't use this patch! + $cache = cache_get('forums::'. $tid, 'cache_forum'); + if ($cache) { + $forums = unserialize($cache->data); + return $forums; + } + $forums = array(); $_forums = taxonomy_get_tree(variable_get('forum_nav_vocabulary', ''), $tid); @@ -754,6 +765,8 @@ $forums[$forum->tid] = $forum; } + cache_set('forums::'. $tid, 'cache_forum', serialize($forums)); + return $forums; }