--- revision_moderation.module.orig	2009-12-17 19:18:07.000000000 +1300
+++ revision_moderation.module	2010-05-26 17:26:54.000000000 +1200
@@ -19,7 +19,7 @@ function revision_moderation_menu() {
   $items['admin/content/node/revisions'] = array(
     'title' => t('Pending revisions'),
     'page callback' => 'revision_moderation_pending_revisions_admin',
-    'access arguments' => array('administer nodes'),
+    'access arguments' => array('revert revisions'),
     'type' => MENU_LOCAL_TASK,
   );
 
@@ -29,7 +29,7 @@ function revision_moderation_menu() {
     'page callback' => 'drupal_get_form',
     'page arguments' => array('revision_moderation_settings'),
     'description' => t('Configure revision publishing options.'),
-    'access arguments' => array('administer nodes'),
+    'access arguments' => array('revert revisions'),
   );
 
   // Callback to allow users to edit revisions.
@@ -64,7 +64,7 @@ function revision_moderation_menu() {
  */
 function revision_moderation_admin_perm($nid) {
   $node = node_load($nid);
-  $access = user_access('administer nodes') || (user_access('view revisions') && node_access('update', $node));
+  $access = user_access('revert revisions') || (user_access('view revisions') && node_access('update', $node));
   return $access;
 }
 
@@ -76,7 +76,7 @@ function revision_moderation_settings() 
     '#type' => 'checkbox',
     '#title' => t('Exempt administrators from revision moderation'),
     '#default_value' => variable_get('revision_moderation_exempt', 1),
-    '#description' => t('With this option enabled, users with the "administer nodes" privilege will bypass the moderation system, and their revisions will be published immediately.'),
+    '#description' => t('With this option enabled, users with the "revert revisions" privilege will bypass the moderation system, and their revisions will be published immediately.'),
   );
 
   return system_settings_form($form);
@@ -95,8 +95,9 @@ function revision_moderation_form_alter(
         $default_value = $result;
       }
     }
-    // Only show the checkbox if user has 'administer nodes' privileges.
-    if (!empty($node->revision) || user_access('administer nodes')) {
+
+    // Only show the checkbox if user has 'revert revisions' privileges.
+    if (user_access('revert revisions')) {
       $form['revision_information']['revision_moderation'] = array(
         '#type' => 'checkbox',
         '#title' => t('New revisions in moderation'),
@@ -108,7 +109,12 @@ function revision_moderation_form_alter(
         '#type' => 'value',
         '#value' => $default_value,
       );
+      // Hide make new revision checkbox too, to enforce revisioning
+      if( isset($form['revision_information']['revision']) ){
+        $form['revision_information']['revision']['#access'] = FALSE;
+      }
     }
+     
   }
   // Also add option to node settings form
   elseif ($form_id == 'node_type_form') {
@@ -192,7 +198,7 @@ function revision_moderation_nodeapi(&$n
   // turned on.
   // And not editing a chose revision
   if ($node->nid && $node->revision_moderation == 1 && arg(2) != 'revisions'
-    && (!user_access('administer nodes') || !variable_get('revision_moderation_exempt', 1))) {
+    && (!user_access('revert revisions') || !variable_get('revision_moderation_exempt', 1))) {
     switch ($op) {
       case 'prepare':
         // If user has a pending revision for this node, load the latest version of
@@ -267,7 +273,7 @@ function revision_moderation_block($op =
   elseif ($op == 'view') {
     $block = array();
 
-    if (user_access('administer nodes')) {
+    if (user_access('revert revisions')) {
       $output = '';
       $list = array();
 
