Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.818
diff -u -p -r1.818 node.module
--- modules/node/node.module	22 May 2007 05:52:16 -0000	1.818
+++ modules/node/node.module	22 May 2007 22:09:40 -0000
@@ -2354,25 +2354,36 @@ function node_form_submit($form_values, 
  * Menu callback -- ask for confirmation of node deletion
  */
 function node_delete_confirm($node) {
- $form['nid'] = array('#type' => 'value', '#value' => $node->nid);
+  $form['nid'] = array('#type' => 'value', '#value' => $node->nid);
+  $form['ban'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Also ban author %name', array('%name' => $node->name)),
+    '#access' => user_access('ban users'),
+  );
 
- return confirm_form($form,
-   t('Are you sure you want to delete %title?', array('%title' => $node->title)),
-   isset($_GET['destination']) ? $_GET['destination'] : 'node/'. $node->nid,
-   t('This action cannot be undone.'),
-   t('Delete'), t('Cancel'));
+  return confirm_form($form,
+    t('Are you sure you want to delete %title?', array('%title' => $node->title)),
+    isset($_GET['destination']) ? $_GET['destination'] : 'node/'. $node->nid,
+    t('This action cannot be undone.'),
+    t('Delete'), t('Cancel'));
 }
 
 /**
  * Execute node deletion
  */
 function node_delete_confirm_submit($form_values, $form, &$form_state) {
+  if ($form_values['ban']) {
+    $node = node_load($form_values['nid']);
+    $account = user_load($node->uid);
+    user_save($account, array('status' => 0));
+    drupal_set_message(t('User %name has been banned.', array('%name' => $account->name)));
+  }
+
   if ($form_values['confirm']) {
     node_delete($form_values['nid']);
   }
 
   $form_state['redirect'] = '<front>';
-  return;
 }
 
 /**
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.785
diff -u -p -r1.785 user.module
--- modules/user/user.module	22 May 2007 05:52:17 -0000	1.785
+++ modules/user/user.module	22 May 2007 22:09:43 -0000
@@ -455,7 +455,7 @@ function user_fields() {
  * Implementation of hook_perm().
  */
 function user_perm() {
-  return array('administer access control', 'administer users', 'access user profiles', 'change own username');
+  return array('administer access control', 'administer users', 'access user profiles', 'change own username', 'ban users');
 }
 
 /**
