Index: modr8.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/modr8/modr8.module,v
retrieving revision 1.5.2.10
diff -u -F^function -r1.5.2.10 modr8.module
--- modr8.module	6 May 2007 19:29:08 -0000	1.5.2.10
+++ modr8.module	12 Jun 2007 15:05:45 -0000
@@ -189,9 +189,13 @@ function modr8_form_alter($form_id, &$fo
  */
 function modr8_page() {
   require_once drupal_get_path('module', 'modr8'). '/modr8_admin.inc';
-  
-  $count_sql = db_rewrite_sql('SELECT COUNT(*) FROM {node} n WHERE n.status = 1 AND n.moderate = 1');
-  $page_sql = db_rewrite_sql('SELECT n.nid FROM {node} n WHERE n.status = 1 AND n.moderate = 1 ORDER BY n.changed DESC');
+
+  if (!user_access('administer nodes')) {
+    // Users who don't have the 'administer nodes' permission can only see published nodes.
+    $is_published = 'n.status = 1 AND ';
+  }
+  $count_sql = db_rewrite_sql('SELECT COUNT(*) FROM {node} n WHERE '. $is_published .' n.moderate = 1');
+  $page_sql = db_rewrite_sql('SELECT n.nid FROM {node} n WHERE '. $is_published .' n.moderate = 1 ORDER BY n.changed DESC');
   $result = pager_query($page_sql, variable_get('modr8_nodes_per_page', 10), 0, $count_sql);
   
   $output = '<p>'. l(t('Show log of all actions on moderated content.'), 'admin/logs/modr8') .'</p>';
@@ -254,10 +258,14 @@ function modr8_block($op = 'list', $delt
   elseif ($op == 'view') {
     if (user_access('moderate content')){
       $block['subject'] = t('Moderation queue');
-      $count = db_result(db_query(db_rewrite_sql('SELECT COUNT(*) FROM {node} n WHERE n.status = 1 AND n.moderate = 1')));
+      if (!user_access('administer nodes')) {
+        // Users who don't have the 'administer nodes' permission can only see published nodes.
+        $is_published = 'n.status = 1 AND ';
+      }
+      $count = db_result(db_query(db_rewrite_sql('SELECT COUNT(*) FROM {node} n WHERE '. $is_published .' n.moderate = 1')));
       $content = '<p>'. l(t('@items in moderation',array('@items' => format_plural($count, '1 post', '@count posts'))),'admin/content/modr8'). '</p>';
       if ($count) {
-        $sql = db_rewrite_sql('SELECT n.nid, n.title FROM {node} n WHERE n.status = 1 AND n.moderate = 1 ORDER BY n.changed DESC');
+        $sql = db_rewrite_sql('SELECT n.nid, n.title FROM {node} n WHERE '. $is_published .' n.moderate = 1 ORDER BY n.changed DESC');
         $result = db_query_range($sql,0,6);
         $content .= node_title_list($result, t('Recent additions:'));
       }
Index: modr8_admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/modr8/modr8_admin.inc,v
retrieving revision 1.2.2.8
diff -u -F^function -r1.2.2.8 modr8_admin.inc
--- modr8_admin.inc	13 Feb 2007 02:34:11 -0000	1.2.2.8
+++ modr8_admin.inc	12 Jun 2007 15:05:45 -0000
@@ -222,16 +222,19 @@ function modr8_form_submit($form_id, $fo
     $message = '';   
     switch ($values['ops']) {
       case 'approve':
-        if(variable_get('modr8_send_approve', FALSE)){
+        if (variable_get('modr8_send_approve', FALSE)){
           $message = modr8_usermail('approve', $nid, $values);
         }
-        db_query('UPDATE {node} SET moderate = 0 WHERE nid = %d', $nid);
+        if (user_access('administer nodes')) {
+          $publish = ', status = 1';
+        }
+        db_query('UPDATE {node} SET moderate = 0 '. $publish .' WHERE nid = %d', $nid);
         drupal_set_message(t('The %type with title %title has been approved.', array('%title' => $values['title'], '%type' => $values['type'])));
         cache_clear_all();
         modr8_log_action('approve', $nid, $values, $message);
         break;
       case 'delete':
-        if(variable_get('modr8_send_deny', FALSE)){
+        if (variable_get('modr8_send_deny', FALSE)){
           $message = modr8_usermail('deny', $nid, $values);
         }
         node_delete($nid);
@@ -239,7 +242,7 @@ function modr8_form_submit($form_id, $fo
         modr8_log_action('delete', $nid, $values, $message);
         break;
       case 'nada':
-        if(variable_get('modr8_send_noact', FALSE) && !empty($values['note'])){
+        if (variable_get('modr8_send_noact', FALSE) && !empty($values['note'])){
           $message = modr8_usermail('nada', $nid, $values);
           modr8_log_action('nada', $nid, $values, $message);
         }    
