You are here

function advanced_menu_core_access in Advanced Menu 7

Same name and namespace in other branches
  1. 6.x core/advanced_menu_core.module \advanced_menu_core_access()

Implementation of hook_access().

1 call to advanced_menu_core_access()
advanced_menu_menu_admin_form_node_form_alter in menu_admin/advanced_menu_menu_admin.module
Implements hook_form_BASE_FORM_ID_alter().
2 string references to 'advanced_menu_core_access'
advanced_menu_core_menu in core/advanced_menu_core.module
Implements hook_menu().
advanced_menu_core_menu_alter in core/advanced_menu_core.module
Implementation of hook_menu_alter().

File

core/advanced_menu_core.module, line 80
Provides advanced menu permissioning.

Code

function advanced_menu_core_access() {
  global $user;
  $roleMenus = array();
  $args = func_get_args();
  $retVal = user_access($args[0]);
  if (module_exists('advanced_menu_menu_admin')) {
    $roleMenus = _advanced_menu_menu_admin_menus();
  }
  if (count($args) > 1) {
    switch ($args[1]) {
      case 'anonymous':
        $retVal = TRUE;
        break;
      case 'edit node':
      case 'basic':
        if (count($roleMenus) > 0 || user_access($args[0])) {
          $retVal = TRUE;
        }
        break;
      case 'admin':
        $retVal = user_access($args[0]);
        break;
      case 'edit menu':
      case 'edit item':
        if (isset($roleMenus)) {
          $retval = FALSE;
          if (isset($roleMenus[$args[2]['menu_name']])) {
            $retVal = TRUE;
          }
        }
        break;
    }
  }
  return $retVal;
}