Index: modules/menu.module =================================================================== RCS file: /cvs/drupal/drupal/modules/menu.module,v retrieving revision 1.56 diff -u -p -r1.56 menu.module --- modules/menu.module 15 Dec 2005 21:53:49 -0000 1.56 +++ modules/menu.module 16 Dec 2005 01:31:54 -0000 @@ -190,7 +190,7 @@ function menu_block($op = 'list', $delta */ function menu_nodeapi(&$node, $op) { - if (user_access('administer menu')) { + if (user_access('administer menu') || user_access('manage menus for own nodes')) { switch ($op) { case 'insert': case 'update': @@ -217,7 +217,7 @@ function menu_nodeapi(&$node, $op) { * Implementation of hook_perm(). */ function menu_perm() { - return array('administer menu'); + return array('administer menu', 'manage menus for own nodes'); } /** @@ -648,7 +648,7 @@ function menu_parent_options($mid, $pid * Add menu item fields to the node form. */ function menu_form_alter($form_id, &$form) { - if (user_access('administer menu') && isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id) { + if ((user_access('administer menu') || user_access('manage menus for own nodes')) && isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id) { $edit = isset($_POST['edit']) ? $_POST['edit'] : ''; $edit['nid'] = $form['nid']['#value']; @@ -723,10 +723,12 @@ function menu_form_alter($form_id, &$for '#default_value' => $item['delete'], ); - $form['menu']['advanced'] = array( - '#type' => 'item', - '#value' => t('You may also edit the advanced settings for this menu item.', array('%edit' => url("admin/menu/item/edit/{$item['mid']}"))), - ); + if (user_access('administer menu')) { + $form['menu']['advanced'] = array( + '#type' => 'item', + '#value' => t('You may also edit the advanced settings for this menu item.', array('%edit' => url("admin/menu/item/edit/{$item['mid']}"))), + ); + } } } }