You are here

function admin_landing_page_access in Admin 6.2

Same name and namespace in other branches
  1. 6 admin.module \admin_landing_page_access()
  2. 7.2 admin.module \admin_landing_page_access()

Menu access callback for admin landing pages.

For a given landing page, grant access if the current user has access to any of its child menu items.

1 string reference to 'admin_landing_page_access'
admin_menu_alter in ./admin.module
Implementation of hook_menu_alter().

File

./admin.module, line 203

Code

function admin_landing_page_access($path) {
  static $paths;
  if (!isset($paths[$path])) {
    $item = db_fetch_array(db_query("SELECT mlid, menu_name FROM {menu_links} ml WHERE ml.router_path = '%s' AND module = 'system'", $path));
    $result = db_query("\n      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, m.description, ml.*\n      FROM {menu_links} ml\n      LEFT JOIN {menu_router} m ON ml.link_path = m.path\n      WHERE ml.plid = %d AND ml.menu_name = '%s' AND hidden = 0", $item['mlid'], $item['menu_name']);
    $paths[$path] = FALSE;
    while ($item = db_fetch_array($result)) {
      _menu_link_translate($item);
      if ($item['access']) {
        $paths[$path] = TRUE;
        break;
      }
    }
  }
  return $paths[$path];
}