Index: modules/filter/filter.module =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v retrieving revision 1.223 diff -u -p -r1.223 filter.module --- modules/filter/filter.module 31 Aug 2008 17:19:06 -0000 1.223 +++ modules/filter/filter.module 4 Sep 2008 10:37:23 -0000 @@ -160,6 +160,23 @@ function filter_cron() { } /** + * Implementation of hook_form_alter(). + */ +function filter_form_alter(&$form, $form_state, $form_id) { + if (isset($form['type']) && $form['type']['#value'] . '_node_form' == $form_id && !empty($form['nid']['#value'])) { + foreach (element_children($form) as $key) { + if (isset($form[$key]['format'])) { + if (!filter_access($form['#node']->format)) { + $form[$key]['#access'] = FALSE; + $form['disabled_' . $key]['format'] = array('#type' => 'value', '#value' => $form['#node']->format); + $form['disabled_' . $key]['#markup'] = '

' . t('%title has been disabled because you do not have sufficient permissions to edit this field.', array('%title' => $form[$key]['body']['#title'])) . '

'; + } + } + } + } +} + +/** * Implementation of hook_filter_tips(). */ function filter_filter_tips($delta, $format, $long = FALSE) { Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.973 diff -u -p -r1.973 node.module --- modules/node/node.module 31 Aug 2008 15:50:35 -0000 1.973 +++ modules/node/node.module 4 Sep 2008 10:37:24 -0000 @@ -2071,10 +2071,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('administer nodes', $account)) { return TRUE;