function user_cancel_confirm
7.x user.pages.inc | user_cancel_confirm($account, $timestamp = 0, $hashed_pass = '') |
Menu callback; Cancel a user account via e-mail confirmation link.
See also
5 string references to 'user_cancel_confirm'
- user_cancel_confirm_form in drupal-7.x/
modules/ user/ user.pages.inc - Form builder; confirm form for cancelling user account.
- user_cancel_confirm_form_submit in drupal-7.x/
modules/ user/ user.pages.inc - Submit handler for the account cancellation confirm form.
- user_menu in drupal-7.x/
modules/ user/ user.module - Implements hook_menu().
- user_multiple_cancel_confirm in drupal-7.x/
modules/ user/ user.module - user_multiple_cancel_confirm_submit in drupal-7.x/
modules/ user/ user.module - Submit handler for mass-account cancellation form.
File
- drupal-7.x/
modules/ user/ user.pages.inc, line 515 - User page callback file for the user module.
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)) {
$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.'));
drupal_goto("user/$account->uid/cancel");
}
}
return MENU_ACCESS_DENIED;
}