summaryrefslogtreecommitdiff
path: root/modules/menu
diff options
context:
space:
mode:
Diffstat (limited to 'modules/menu')
-rw-r--r--modules/menu/menu.admin.inc4
-rw-r--r--modules/menu/menu.module4
2 files changed, 8 insertions, 0 deletions
diff --git a/modules/menu/menu.admin.inc b/modules/menu/menu.admin.inc
index c13c88e87..3ac0fcb23 100644
--- a/modules/menu/menu.admin.inc
+++ b/modules/menu/menu.admin.inc
@@ -27,6 +27,7 @@ function menu_overview_page() {
* relevant operations.
*/
function menu_overview_form(&$form_state, $menu) {
+ global $menu_admin;
$sql ="
SELECT m.load_functions, m.to_arg_functions, m.access_callback, m.access_arguments, m.page_callback, m.page_arguments, m.title, m.title_callback, m.title_arguments, m.type, ml.*
FROM {menu_links} ml LEFT JOIN {menu_router} m ON m.path = ml.router_path
@@ -37,7 +38,10 @@ function menu_overview_form(&$form_state, $menu) {
$tree = menu_tree_data($result);
$node_links = array();
menu_tree_collect_node_links($tree, $node_links);
+ // We indicate that a menu admintrator is running the menu access check.
+ $menu_admin = TRUE;
menu_tree_check_access($tree, $node_links);
+ $menu_admin = FALSE;
$form = _menu_overview_tree_form($tree);
if (element_children($form)) {
diff --git a/modules/menu/menu.module b/modules/menu/menu.module
index 7204cd7ba..d5291cf02 100644
--- a/modules/menu/menu.module
+++ b/modules/menu/menu.module
@@ -450,8 +450,11 @@ function menu_get_menus($all = TRUE) {
* FALSE otherwise.
*/
function menu_valid_path($form_item) {
+ global $menu_admin;
$item = array();
$path = $form_item['link_path'];
+ // We indicate that a menu administrator is running the menu access check.
+ $menu_admin = TRUE;
if ($path == '<front>' || menu_path_is_external($path)) {
$item = array('access' => TRUE);
}
@@ -468,5 +471,6 @@ function menu_valid_path($form_item) {
else {
$item = menu_get_item($path);
}
+ $menu_admin = FALSE;
return $item && $item['access'];
}