summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerhard Killesreiter <killes_www_drop_org@227.no-reply.drupal.org>2006-03-20 20:48:19 +0000
committerGerhard Killesreiter <killes_www_drop_org@227.no-reply.drupal.org>2006-03-20 20:48:19 +0000
commitdae2bdbb3b46021672bfc109d42b554c21f0d092 (patch)
tree8f9ed2d5becc458ae5faf4a61520be6e5ecd1fc1
parent63b3fea2b38d62da171cca6310adfd518fb2131e (diff)
downloadbrdo-dae2bdbb3b46021672bfc109d42b554c21f0d092.tar.gz
brdo-dae2bdbb3b46021672bfc109d42b554c21f0d092.tar.bz2
#45988, Nodes with menu items bypass node permissions system
patch by chx
-rw-r--r--includes/menu.inc10
-rw-r--r--modules/node.module2
-rw-r--r--modules/node/node.module2
3 files changed, 12 insertions, 2 deletions
diff --git a/includes/menu.inc b/includes/menu.inc
index 71db7aee0..0a19ad75d 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -1210,6 +1210,16 @@ function _menu_append_contextual_items() {
$new_items[$temp_mid] = $item;
$temp_mid--;
}
+ else {
+ $mid = $_menu['path index'][$item['path']];
+ if ($_menu['items'][$mid]['type'] & MENU_CREATED_BY_ADMIN) {
+ $_menu['items'][$mid]['access'] = $item['access'];
+ $_menu['items'][$mid]['callback'] = $item['callback'];
+ if (isset($_menu['items'][$mid]['callback arguments'])) {
+ $_menu['items'][$mid]['callback arguments'] = $item['callback arguments'];
+ }
+ }
+ }
}
// Establish parent-child relationships.
diff --git a/modules/node.module b/modules/node.module
index 1dd230f34..3cd00a5e5 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -946,7 +946,7 @@ function node_menu($may_cache) {
'access' => node_access('view', $node),
'type' => MENU_CALLBACK);
$items[] = array('path' => 'node/'. arg(1) .'/view', 'title' => t('view'),
- 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10, 'access' => node_access('view', $node));
+ 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10);
$items[] = array('path' => 'node/'. arg(1) .'/edit', 'title' => t('edit'),
'callback' => 'node_page',
'access' => node_access('update', $node),
diff --git a/modules/node/node.module b/modules/node/node.module
index 1dd230f34..3cd00a5e5 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -946,7 +946,7 @@ function node_menu($may_cache) {
'access' => node_access('view', $node),
'type' => MENU_CALLBACK);
$items[] = array('path' => 'node/'. arg(1) .'/view', 'title' => t('view'),
- 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10, 'access' => node_access('view', $node));
+ 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10);
$items[] = array('path' => 'node/'. arg(1) .'/edit', 'title' => t('edit'),
'callback' => 'node_page',
'access' => node_access('update', $node),