function user_cancel_confirm

Menu callback; Cancel a user account via e-mail confirmation link.

See also

user_cancel_confirm_form()

user_cancel_url()

1 string reference to 'user_cancel_confirm'
user_menu in modules/user/user.module
Implements hook_menu().

File

modules/user/user.pages.inc, line 660

Code

function user_cancel_confirm($account, $timestamp = 0, $hashed_pass = '') {
    // Time out in seconds until cancel URL expires; 24 hours = 86400 seconds.
    $timeout = 86400;
    $current = REQUEST_TIME;
    // Basic validation of arguments.
    if (isset($account->data['user_cancel_method']) && !empty($timestamp) && !empty($hashed_pass)) {
        // Validate expiration and hashed password/login.
        if ($timestamp <= $current && $current - $timestamp < $timeout && $account->uid && $timestamp >= $account->login && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid, $account->mail)) {
            $edit = array(
                'user_cancel_notify' => isset($account->data['user_cancel_notify']) ? $account->data['user_cancel_notify'] : variable_get('user_mail_status_canceled_notify', FALSE),
            );
            user_cancel($edit, $account->uid, $account->data['user_cancel_method']);
            // Since user_cancel() is not invoked via Form API, batch processing needs
            // to be invoked manually and should redirect to the front page after
            // completion.
            batch_process('');
        }
        else {
            drupal_set_message(t('You have tried to use an account cancellation link that has expired. Please request a new one using the form below.'), 'error');
            drupal_goto("user/{$account->uid}/cancel");
        }
    }
    return MENU_ACCESS_DENIED;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.