diff --git a/public/includes/menu.inc b/public/includes/menu.inc index 4788855..2465b38 100644 --- a/public/includes/menu.inc +++ b/public/includes/menu.inc @@ -1001,12 +1001,13 @@ function menu_tree_collect_node_links(&$tree, &$node_links) { * menu_tree_collect_node_links(). */ function menu_tree_check_access(&$tree, $node_links = array()) { - - if ($node_links && (user_access('access content') || user_access('bypass node access'))) { + $bypass_node_access = user_access('bypass node access'); + if ($node_links && (user_access('access content') || $bypass_node_access)) { // Use db_rewrite_sql to evaluate view access without loading each full node. $nids = array_keys($node_links); $placeholders = '%d'. str_repeat(', %d', count($nids) - 1); - $result = db_query(db_rewrite_sql("SELECT n.nid FROM {node} n WHERE n.status = 1 AND n.nid IN (". $placeholders .")"), $nids); + $status = (!$bypass_node_access) ? ' n.status = 1 AND' : ''; + $result = db_query(db_rewrite_sql("SELECT n.nid FROM {node} n WHERE" . $status . " n.nid IN (" . $placeholders . ")"), $nids); while ($node = db_fetch_array($result)) { $nid = $node['nid']; foreach ($node_links[$nid] as $mlid => $link) {