1 user.admin.inc | user_multiple_cancel_confirm($form, &$form_state) |
Form builder; Cancel multiple accounts at the same time.
See also
Related topics
File
- core/
modules/ user/ user.admin.inc, line 13 - Admin page callbacks for the User module.
Code
function user_multiple_cancel_confirm($form, &$form_state) {
if (isset($_SESSION['user_cancel_action']['timestamp']) && (REQUEST_TIME - $_SESSION['user_cancel_action']['timestamp'] < 6000)) {
$uids = $_SESSION['user_cancel_action']['uids'];
}
else {
$uids = array();
}
$accounts = user_load_multiple($uids);
// Output a notice that user 1 cannot be canceled.
if (isset($accounts[1])) {
$redirect = (count($accounts) == 1);
$message = t('The user account %name cannot be cancelled.', array('%name' => $accounts[1]->name));
backdrop_set_message($message, $redirect ? 'error' : 'warning');
unset($accounts[1]);
// If only user 1 was selected, redirect to the overview.
if ($redirect) {
backdrop_goto('admin/people');
}
}
if (empty($accounts)) {
$destination = isset($_GET['destination']) ? $_GET['destination'] : 'admin/people';
$form['empty']['#markup'] = '<p>' . t('Return to the <a href="!url">content administration page</a>.', array('!url' => url($destination))) . '</p>';
backdrop_set_message(t('No user accounts have been selected for cancellation.'), 'error');
return $form;
}
$form_state['accounts'] = $accounts;
$form['user_list'] = array(
'#theme' => 'item_list',
'#items' => array(),
);
foreach ($accounts as $account) {
$form['user_list']['#items'][] = check_plain($account->name);
}
module_load_include('inc', 'user', 'user.pages');
$form['user_cancel_method'] = array(
'#type' => 'item',
'#title' => t('When cancelling these accounts'),
);
$form['user_cancel_method'] += user_cancel_methods();
// Remove method descriptions.
foreach (element_children($form['user_cancel_method']) as $element) {
unset($form['user_cancel_method'][$element]['#description']);
}
// Allow to send the account cancellation confirmation mail.
$form['user_cancel_confirm'] = array(
'#type' => 'checkbox',
'#title' => t('Require email confirmation to cancel account.'),
'#default_value' => FALSE,
'#description' => t('When enabled, the user must confirm the account cancellation via email.'),
);
// Also allow to send account canceled notification mail, if enabled.
$form['user_cancel_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
'#default_value' => FALSE,
'#access' => config_get('system.core', 'user_mail_status_canceled_notify'),
'#description' => t('When enabled, the user will receive an email notification after the account has been cancelled.'),
);
$confirm_question = format_plural(count($accounts), 'Are you sure you want to cancel this user account?', 'Are you sure you want to cancel these user accounts?');
return confirm_form($form, $confirm_question, 'admin/people', NULL, t('Cancel accounts'), t('Cancel'));
}