diff --git a/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsAdminTest.php b/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsAdminTest.php index a24ec95..2ad04c1 100644 --- a/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsAdminTest.php +++ b/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsAdminTest.php @@ -137,8 +137,8 @@ class StatisticsAdminTest extends WebTestBase { */ function testDeleteUser() { config('statistics.settings')->set('access_log.enabled', 1)->save(); - - variable_set('user_cancel_method', 'user_cancel_delete'); + + config('user.settings')->set('cancel_method', 'user_cancel_delete')->save(); $this->drupalLogout($this->privileged_user); $account = $this->drupalCreateUser(array('access content', 'cancel account')); $this->drupalLogin($account); diff --git a/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php b/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php index 0d12cff..58c4ecf 100644 --- a/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php +++ b/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php @@ -35,8 +35,8 @@ class UserCancelTest extends WebTestBase { * Attempt to cancel account without permission. */ function testUserCancelWithoutPermission() { - variable_set('user_cancel_method', 'user_cancel_reassign'); - + config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save(); + // Create a user. $account = $this->drupalCreateUser(array()); $this->drupalLogin($account); @@ -105,8 +105,8 @@ class UserCancelTest extends WebTestBase { * Attempt invalid account cancellations. */ function testUserCancelInvalid() { - variable_set('user_cancel_method', 'user_cancel_reassign'); - + config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save(); + // Create a user. $account = $this->drupalCreateUser(array('cancel account')); $this->drupalLogin($account); @@ -147,8 +147,8 @@ class UserCancelTest extends WebTestBase { * Disable account and keep all content. */ function testUserBlock() { - variable_set('user_cancel_method', 'user_cancel_block'); - + config('user.settings')->set('cancel_method', 'user_cancel_block')->save(); + // Create a user. $web_user = $this->drupalCreateUser(array('cancel account')); $this->drupalLogin($web_user); @@ -182,8 +182,8 @@ class UserCancelTest extends WebTestBase { * Disable account and unpublish all content. */ function testUserBlockUnpublish() { - variable_set('user_cancel_method', 'user_cancel_block_unpublish'); - + config('user.settings')->set('cancel_method', 'user_cancel_block_unpublish')->save(); + // Create a user. $account = $this->drupalCreateUser(array('cancel account')); $this->drupalLogin($account); @@ -226,8 +226,8 @@ class UserCancelTest extends WebTestBase { * Delete account and anonymize all content. */ function testUserAnonymize() { - variable_set('user_cancel_method', 'user_cancel_reassign'); - + config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save(); + // Create a user. $account = $this->drupalCreateUser(array('cancel account')); $this->drupalLogin($account); @@ -277,8 +277,8 @@ class UserCancelTest extends WebTestBase { * Delete account and remove all content. */ function testUserDelete() { - variable_set('user_cancel_method', 'user_cancel_delete'); - + config('user.settings')->set('cancel_method', 'user_cancel_delete')->save(); + // Create a user. $account = $this->drupalCreateUser(array('cancel account', 'post comments', 'skip comment approval')); $this->drupalLogin($account); @@ -339,8 +339,8 @@ class UserCancelTest extends WebTestBase { * Create an administrative user and delete another user. */ function testUserCancelByAdmin() { - variable_set('user_cancel_method', 'user_cancel_reassign'); - + config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save(); + // Create a regular user. $account = $this->drupalCreateUser(array()); @@ -364,8 +364,8 @@ class UserCancelTest extends WebTestBase { * Tests deletion of a user account without an e-mail address. */ function testUserWithoutEmailCancelByAdmin() { - variable_set('user_cancel_method', 'user_cancel_reassign'); - + config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save(); + // Create a regular user. $account = $this->drupalCreateUser(array()); // This user has no e-mail address. @@ -392,10 +392,10 @@ class UserCancelTest extends WebTestBase { * Create an administrative user and mass-delete other users. */ function testMassUserCancelByAdmin() { - variable_set('user_cancel_method', 'user_cancel_reassign'); + config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save(); // Enable account cancellation notification. variable_set('user_mail_status_canceled_notify', TRUE); - + // Create administrative user. $admin_user = $this->drupalCreateUser(array('administer users')); $this->drupalLogin($admin_user); diff --git a/core/modules/user/user.admin.inc b/core/modules/user/user.admin.inc index 3c39f24..769c169 100644 --- a/core/modules/user/user.admin.inc +++ b/core/modules/user/user.admin.inc @@ -321,6 +321,7 @@ function user_admin_settings($form, &$form_state) { $form['registration_cancellation']['user_cancel_method'] = array( '#type' => 'item', '#title' => t('When cancelling a user account'), + '#default_value' => $config->get('cancel_method'), '#description' => t('Users with the %select-cancel-method or %administer-users permissions can override this default method.', array('%select-cancel-method' => t('Select method for cancelling account'), '%administer-users' => t('Administer users'), '@permissions-url' => url('admin/people/permissions'))), ); $form['registration_cancellation']['user_cancel_method'] += user_cancel_methods(); @@ -654,6 +655,7 @@ function user_admin_settings_submit($form, &$form_state) { ->set('register', $form_state['values']['user_register']) ->set('verify_mail', $form_state['values']['user_email_verification']) ->set('signatures', $form_state['values']['user_signatures']) + ->set('cancel_method', $form_state['values']['user_cancel_method']) ->set('notify.status_activated', $form_state['values']['user_mail_status_activated_notify']) ->set('notify.status_blocked', $form_state['values']['user_mail_status_blocked_notify']) ->set('notify.status_canceled', $form_state['values']['user_mail_status_canceled_notify']) diff --git a/core/modules/user/user.install b/core/modules/user/user.install index 67957da..a17adbc 100644 --- a/core/modules/user/user.install +++ b/core/modules/user/user.install @@ -492,6 +492,7 @@ function user_update_8004() { 'user_admin_role' => 'admin_role', 'user_register' => 'register', 'user_signatures' => 'signatures', + 'user_cancel_method' => 'cancel_method', 'user_mail_status_activated_notify' => 'notify.status_activated', 'user_mail_status_blocked_notify' => 'notify.status_blocked', 'user_mail_status_cancelled_notify' => 'notify.status_cancelled', @@ -504,12 +505,26 @@ function user_update_8004() { '1' => 'visitors', '2' => 'visitors_admin_approval', ); + $config = config('user.settings'); $user_register = $config->get('register'); - + $user_cancel_method = $config->get('cancel_method'); + if (is_numeric($user_register) && isset($map[$user_register])) { $config->set('register', $map[$user_register])->save(); } + + // Convert user.settings:cancel_method numeric value to text value. + $cancel_map = array( + '0' => 'user_cancel_block', + '1' => 'user_cancel_block_unpublish', + '2' => 'user_cancel_block_reassign', + '3' => 'user_cancel_block_delete', + ); + + if (is_numeric($user_cancel_method) && isset($cancel_map[$user_cancel_method])) { + $config->set('cancel_method', $$cancel_map[$user_cancel_method])->save(); + } } /** diff --git a/core/modules/user/user.pages.inc b/core/modules/user/user.pages.inc index d26ca6d..23b25a7 100644 --- a/core/modules/user/user.pages.inc +++ b/core/modules/user/user.pages.inc @@ -229,7 +229,7 @@ function user_cancel_confirm_form($form, &$form_state, $account) { $form['_account'] = array('#type' => 'value', '#value' => $account); // Display account cancellation method selection, if allowed. - $default_method = variable_get('user_cancel_method', 'user_cancel_block'); + $default_method = config('user.settings')->get('cancel_method'); $admin_access = user_access('administer users'); $can_select_method = $admin_access || user_access('select account cancellation method'); $form['user_cancel_method'] = array( @@ -364,7 +364,7 @@ function user_cancel_methods() { drupal_alter('user_cancel_methods', $methods); // Turn all methods into real form elements. - $default_method = variable_get('user_cancel_method', 'user_cancel_block'); + $default_method = config('user.settings')->get('cancel_method') ?: 'user_cancel_block'; foreach ($methods as $name => $method) { $form[$name] = array( '#type' => 'radio',