Index: modules/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.559
diff -u -F^f -r1.559 node.module
--- modules/node.module	5 Dec 2005 09:11:33 -0000	1.559
+++ modules/node.module	7 Dec 2005 03:47:24 -0000
@@ -1495,14 +1495,22 @@ function node_submit($node) {
   else {
     // Validate for normal users:
     $node->uid = $user->uid ? $user->uid : 0;
-    // Force defaults in case people modify the form:
+    unset($node->created);
+  }
+
+  if (!user_access('administer nodes') && variable_get('node_reset_options_'. $node->type, 1)) {
+    // Reset post options to defaults if the user is not an administrator and
+    // the node type is set to reset to defaults.
     $node_options = variable_get('node_options_'. $node->type, array('status', 'promote'));
     $node->status = in_array('status', $node_options);
     $node->moderate = in_array('moderate', $node_options);
     $node->promote = in_array('promote', $node_options);
     $node->sticky = in_array('sticky', $node_options);
     $node->revision = in_array('revision', $node_options);
-    unset($node->created);
+
+    if ($node->nid) {
+      drupal_set_message(t('The publishing options for this post have been reverted to the defaults for this type of posting.'));
+    }
   }
 
   // Do node-type-specific validation checks.
@@ -2077,6 +2085,13 @@ function node_form_alter($form_id, &$for
       '#options' => array('status' => t('Published'), 'moderate' => t('In moderation queue'), 'promote' => t('Promoted to front page'), 'sticky' => t('Sticky at top of lists'), 'revision' => t('Create new revision')),
       '#description' => t('Users with the <em>administer nodes</em> permission will be able to override these options.'),
     );
+    $form['workflow']['node_reset_options_'. $form['type']['#value']] = array(
+      '#type' => 'radios',
+      '#title' => t('Publishing options for unprivileged users'),
+      '#options' => array(1 => t('Revert when posts are edited'), 0 => t('Keep current settings')),
+      '#default_value' => variable_get('node_reset_options_'. $form['type']['#value'], 1),
+      '#description' => t('In some situations a user can create and edit their posts, but do not have permission to control the publishing options. Reverting the publishing options ensures that the new content goes through the same review by administrators as the initial posting.'),
+    );
   }
 }
 
