=== modified file 'includes/form.inc' --- includes/form.inc 2009-01-28 07:43:26 +0000 +++ includes/form.inc 2009-02-01 00:56:36 +0000 @@ -1838,22 +1838,29 @@ function form_process_radios($element) { */ function form_process_input_format($element) { if (isset($element['#text_format'])) { - // Determine the form element parents and element name to use for the input - // format widget. This simulates the 'element' and 'element_format' pair of - // parents that filter_form() expects. - $element_parents = $element['#parents']; - $element_name = array_pop($element_parents); - $element_parents[] = $element_name . '_format'; - - // We need to break references, otherwise form_builder recurses infinitely. - $element['value'] = (array)$element; - $element['#type'] = 'markup'; - $element['format'] = filter_form($element['#text_format'], 1, $element_parents); - - // We need to clear the #text_format from the new child otherwise we - // would get into an infinite loop. - unset($element['value']['#text_format']); - $element['value']['#weight'] = 0; + if (filter_access($element['#text_format'])) { + // Determine the form element parents and element name to use for the input + // format widget. This simulates the 'element' and 'element_format' pair of + // parents that filter_form() expects. + $element_parents = $element['#parents']; + $element_name = array_pop($element_parents); + $element_parents[] = $element_name . '_format'; + + // We need to break references, otherwise form_builder recurses infinitely. + $element['value'] = (array)$element; + $element['#type'] = 'markup'; + $element['format'] = filter_form($element['#text_format'], 1, $element_parents); + + // We need to clear the #text_format from the new child otherwise we + // would get into an infinite loop. + unset($element['value']['#text_format']); + $element['value']['#weight'] = 0; + } + else { + $element['#type'] = 'markup'; + // We use #default_value to make sure this can not get overridden. + $element['#markup'] = check_markup($element['#default_value'], $element['#text_format']); + } } return $element; } === modified file 'modules/node/node.module' --- modules/node/node.module 2009-01-28 07:34:30 +0000 +++ modules/node/node.module 2009-02-01 00:56:30 +0000 @@ -1878,7 +1878,7 @@ function node_feed($nids = FALSE, $chann $item->body = $content; unset($item->teaser); } - + // Allow modules to modify the fully-built node. node_invoke_nodeapi($item, 'alter', $teaser, FALSE); } @@ -2232,11 +2232,6 @@ function node_access($op, $node, $accoun if (empty($account)) { $account = $user; } - // If the node is in a restricted format, disallow editing. - if ($op == 'update' && !filter_access($node->format)) { - return FALSE; - } - if (user_access('bypass node access', $account)) { return TRUE; }