summaryrefslogtreecommitdiff
path: root/modules/node
diff options
context:
space:
mode:
Diffstat (limited to 'modules/node')
-rw-r--r--modules/node/node.module13
1 files changed, 11 insertions, 2 deletions
diff --git a/modules/node/node.module b/modules/node/node.module
index a0d36e0b1..8e0f698d6 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1132,8 +1132,7 @@ function node_menu() {
$items['node/add'] = array(
'title' => t('Create content'),
'page callback' => 'node_add',
- 'access callback' => 'user_access',
- 'access arguments' => array('access content'),
+ 'access callback' => '_node_add_access',
'weight' => 1,
);
$items['rss.xml'] = array(
@@ -2090,6 +2089,16 @@ function theme_node_form($form) {
return $output;
}
+function _node_add_access() {
+ $types = node_get_types();
+ foreach ($types as $type) {
+ if (function_exists($type->module .'_form') && node_access('create', $type->type)) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
/**
* Present a node submission form or a set of links to such forms.
*/