=== modified file 'modules/node/node.module' --- modules/node/node.module 2007-05-20 16:46:03 +0000 +++ modules/node/node.module 2007-05-22 21:02:09 +0000 @@ -2352,25 +2352,35 @@ 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('Ban the author as well'), + '#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)); + } + if ($form_values['confirm']) { node_delete($form_values['nid']); } $form_state['redirect'] = ''; - return; } /** === modified file 'modules/user/user.module' --- modules/user/user.module 2007-05-20 16:38:19 +0000 +++ modules/user/user.module 2007-05-22 21:02:26 +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'); } /**