Index: mollom.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mollom/mollom.admin.inc,v
retrieving revision 1.1.2.47
diff -u -p -r1.1.2.47 mollom.admin.inc
--- mollom.admin.inc	25 Oct 2010 20:34:55 -0000	1.1.2.47
+++ mollom.admin.inc	29 Oct 2010 11:56:29 -0000
@@ -12,6 +12,9 @@
 function mollom_admin_form_list() {
   _mollom_testing_mode_warning();
 
+  // Reset the cached list of protected forms.
+  mollom_form_cache(TRUE);
+
   $modes = array(
     MOLLOM_MODE_ANALYSIS => t('Text analysis'),
     MOLLOM_MODE_CAPTCHA => t('CAPTCHA'),
@@ -131,7 +134,6 @@ function mollom_admin_configure_form(&$f
       drupal_set_title(t('Configure %form-title protection', array('%form-title' => $mollom_form['title'])));
       $form['#after_build'][] = 'mollom_admin_configure_form_after_build';
 
-      // Display a list of fields for textual analysis (last step).
       $form['mollom']['form_id'] = array(
         '#type' => 'value',
         '#value' => $mollom_form['form_id'],
@@ -211,6 +213,33 @@ function mollom_admin_configure_form(&$f
         );
       }
 
+      $all_permissions = array();
+      foreach (module_implements('perm') as $module) {
+        // Transpose permissions into D7 format.
+        $module_permissions = array_flip(module_invoke($module, 'perm'));
+        foreach ($module_permissions as $permission => $key) {
+          $module_permissions[$permission] = array(
+            'title' => $permission,
+            'module' => $module,
+          );
+        }
+        $all_permissions += $module_permissions;
+      }
+      // Prepend Mollom's global permission to the list.
+      array_unshift($mollom_form['bypass access'], 'bypass mollom protection');
+      $permissions = array();
+      foreach ($mollom_form['bypass access'] as $permission) {
+        $permissions[] = l($all_permissions[$permission]['title'], 'admin/user/permissions', array(
+          'fragment' => 'module-' . $all_permissions[$permission]['module'],
+        ));
+      }
+      $form['mollom']['bypass'] = array(
+        '#type' => 'item',
+        '#title' => t('Bypass access permissions'),
+        '#value' => implode(', ', $permissions),
+        '#description' => t('The form is not protected for users having any of the listed permissions.'),
+      );
+
       $form['actions']['submit'] = array(
         '#type' => 'submit',
         '#value' => t('Save'),
