You are here

function node_user_cancel in Drupal 7

Same name and namespace in other branches
  1. 8 core/modules/node/node.module \node_user_cancel()
  2. 9 core/modules/node/node.module \node_user_cancel()
  3. 10 core/modules/node/node.module \node_user_cancel()

Implements hook_user_cancel().

File

modules/node/node.module, line 1794
The core that allows content to be submitted to the site. Modules and scripts may programmatically submit nodes using the usual form API pattern.

Code

function node_user_cancel($edit, $account, $method) {
  switch ($method) {
    case 'user_cancel_block_unpublish':

      // Unpublish nodes (current revisions).
      module_load_include('inc', 'node', 'node.admin');
      $nodes = db_select('node', 'n')
        ->fields('n', array(
        'nid',
      ))
        ->condition('uid', $account->uid)
        ->execute()
        ->fetchCol();
      node_mass_update($nodes, array(
        'status' => 0,
      ));
      break;
    case 'user_cancel_reassign':

      // Anonymize nodes (current revisions).
      module_load_include('inc', 'node', 'node.admin');
      $nodes = db_select('node', 'n')
        ->fields('n', array(
        'nid',
      ))
        ->condition('uid', $account->uid)
        ->execute()
        ->fetchCol();
      node_mass_update($nodes, array(
        'uid' => 0,
      ));

      // Anonymize old revisions.
      db_update('node_revision')
        ->fields(array(
        'uid' => 0,
      ))
        ->condition('uid', $account->uid)
        ->execute();

      // Clean history.
      db_delete('history')
        ->condition('uid', $account->uid)
        ->execute();
      break;
  }
}