? node_privacy_byrole/po
Index: node_privacy_byrole/node_privacy_byrole.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/node_privacy_byrole/Attic/node_privacy_byrole.install,v
retrieving revision 1.3.2.3
diff -u -p -r1.3.2.3 node_privacy_byrole.install
--- node_privacy_byrole/node_privacy_byrole.install	7 Jan 2009 17:39:14 -0000	1.3.2.3
+++ node_privacy_byrole/node_privacy_byrole.install	13 Feb 2009 16:30:34 -0000
@@ -77,6 +77,9 @@ function node_privacy_byrole_install() {
  */
 function node_privacy_byrole_uninstall() {
   drupal_uninstall_schema('node_privacy_byrole');
+  // Delete npbr variables holding defaults for content types.
+  db_query("DELETE FROM {variable} WHERE name LIKE 'npbr_default_%'");
+  variable_del('npbr_default_permissions');
   drupal_set_message(t('TIP: If all your nodes say access denied, it may be necessary to !rebuild.', array('!rebuild' => l(t('rebuild permissions'), 'admin/content/node-settings'))));
 }
 
Index: node_privacy_byrole/node_privacy_byrole.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/node_privacy_byrole/Attic/node_privacy_byrole.module,v
retrieving revision 1.32.2.7
diff -u -p -r1.32.2.7 node_privacy_byrole.module
--- node_privacy_byrole/node_privacy_byrole.module	31 Dec 2008 16:52:32 -0000	1.32.2.7
+++ node_privacy_byrole/node_privacy_byrole.module	13 Feb 2009 16:30:35 -0000
@@ -187,6 +187,21 @@ function node_privacy_byrole_form_alter(
   if ('node_type_form' == $form_id) {
     node_privacy_byrole_node_type_form($form);
   }
+  elseif ('node_configure' == $form_id) {
+    $form['npbr_default_permissions'] = array(
+      '#type' => 'checkbox',
+      '#title' => 'When rebuilding permissions, reset the node privacy by role permissions on all nodes to the content type defaults.',
+      '#weight' => 0,
+      '#default_value' => variable_get('npbr_default_permissions', 0),
+    );
+    $form['access']['#weight'] = -1;
+  }
+  elseif ('node_configure_rebuild_confirm' == $form_id) {
+    if (variable_get('npbr_default_permissions', 0)) {
+      // Make sure the npbr handler runs first.
+      $form['#submit'] = array_merge(array('node_privacy_byrole_rebuild_submit'), $form['#submit']);
+    }
+  }
   elseif ($form['#id'] == 'node-form') {
     if (node_privacy_byrole_user_has_meta_perm($form['#node'])) {
       node_privacy_byrole_node_form($form);
@@ -194,6 +209,10 @@ function node_privacy_byrole_form_alter(
   }
 }
 
+function node_privacy_byrole_rebuild_submit($form, &$form_state) {
+  db_query('DELETE FROM {node_privacy_byrole}');
+}
+
 /**
  * Checks that the active user has access to set permissions on nodes.
  */
