Index: modules/filter/filter.module =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v retrieving revision 1.218 diff -u -p -r1.218 filter.module --- modules/filter/filter.module 11 Aug 2008 18:01:51 -0000 1.218 +++ modules/filter/filter.module 13 Aug 2008 20:06:01 -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.971 diff -u -p -r1.971 node.module --- modules/node/node.module 3 Aug 2008 19:02:06 -0000 1.971 +++ modules/node/node.module 13 Aug 2008 19:54:20 -0000 @@ -2065,10 +2065,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;