_menu_item_is_accessible
- Versions
- 4.6 – 5
_menu_item_is_accessible($mid)
Determine whether the given menu item is accessible to the current user.
Use this instead of just checking the "access" property of a menu item to properly handle items with fall-through semantics.
Code
includes/menu.inc, line 848
<?php
function _menu_item_is_accessible($mid) {
$menu = menu_get_menu();
// Follow the path up to find the first "access" attribute.
$path = $menu['items'][$mid]['path'];
while ($path && (!array_key_exists($path, $menu['path index']) || !array_key_exists('access', $menu['items'][$menu['path index'][$path]]))) {
$path = substr($path, 0, strrpos($path, '/'));
}
if (empty($path)) {
// Items without any access attribute up the chain are denied, unless they
// were created by the admin. They most likely point to non-Drupal directories
// or to an external URL and should be allowed.
return $menu['items'][$mid]['type'] & MENU_CREATED_BY_ADMIN;
}
return $menu['items'][$menu['path index'][$path]]['access'];
}
?>Login or register to post comments 