From 768faa988bbc2d8df132bdb69ab8b428f3a30851 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Tue, 24 Apr 2007 08:26:58 +0000 Subject: - Patch #138703 by chx: Menu inheritance is wrong. --- includes/menu.inc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'includes') diff --git a/includes/menu.inc b/includes/menu.inc index c7bee38bf..266a814c6 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -758,9 +758,10 @@ function menu_rebuild() { // Because access is checked for each visible parent as well, we only // inherit if arguments were given without a callback. Otherwise the - // inherited check would be identical to that of the parent. - if (!isset($item['access callback']) && isset($parent['access callback']) && !isset($parent['access inherited'])) { - if (isset($item['access arguments']) || !$parent['_visible']) { + // inherited check would be identical to that of the parent. We do + // not inherit from visible parents which are themselves inherited. + if (!isset($item['access callback']) && isset($parent['access callback']) && !(isset($parent['access inherited']) && $parent['_visible'])) { + if (isset($item['access arguments'])) { $item['access callback'] = $parent['access callback']; } else { -- cgit v1.2.3