Problem: Can't add any kind of node. Why? node_access always returns false. so this... (from node_add) foreach (node_list() as $type) { if (node_access('create', $type)) { // ...never gets here! $out = '
  • '; $out .= ' '. l(node_invoke($type, 'node_name'), "node/add/$type", array('title' => t('Add a new %s.', array('%s' => node_invoke($type, 'node_name'))))); $out .= "
    ". implode("\n", module_invoke_all('help', 'node/add#'. $type)) .'
    '; $out .= '
  • '; $item[node_invoke($type, 'node_name')] = $out; } } and this (from node_access): if ($op == 'create' && ($grants = node_invoke_nodeapi($node, 'create'))) { // ...never gets here! foreach ($grants as $grant) { if (!$grant) { return FALSE; } } } Because... function node_invoke_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { $return = array(); foreach (module_list() as $name) { $function = $name .'_nodeapi'; if (function_exists($function)) { $result = $function($node, $op, $a3, $a4); // $result is always empty! if (is_array($result)) { $return = array_merge($return, $result); } else if (isset($result)) { $return[] = $result; } } } // ...and this always returns 0! return $return; }