Issue #1807266 by cam8001, barbun: Convert user_cancel_method() variable to CMI system.
parent
1fd08e5809
commit
3816847005
|
@ -138,7 +138,7 @@ class StatisticsAdminTest extends WebTestBase {
|
||||||
function testDeleteUser() {
|
function testDeleteUser() {
|
||||||
config('statistics.settings')->set('access_log.enabled', 1)->save();
|
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);
|
$this->drupalLogout($this->privileged_user);
|
||||||
$account = $this->drupalCreateUser(array('access content', 'cancel account'));
|
$account = $this->drupalCreateUser(array('access content', 'cancel account'));
|
||||||
$this->drupalLogin($account);
|
$this->drupalLogin($account);
|
||||||
|
|
|
@ -28,9 +28,9 @@ class SystemUpgradePathTest extends UpgradePathTestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests upgrade of system variables.
|
* Tests upgrade of variables to config.
|
||||||
*/
|
*/
|
||||||
public function testSystemVariableUpgrade() {
|
public function testVariableUpgrade() {
|
||||||
$this->assertTrue($this->performUpgrade(), 'The upgrade was completed successfully.');
|
$this->assertTrue($this->performUpgrade(), 'The upgrade was completed successfully.');
|
||||||
|
|
||||||
// Verify that variables were properly upgraded.
|
// Verify that variables were properly upgraded.
|
||||||
|
@ -75,6 +75,10 @@ class SystemUpgradePathTest extends UpgradePathTestBase {
|
||||||
'page.front' => 'node',
|
'page.front' => 'node',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$expected_config['user.settings'] = array(
|
||||||
|
'cancel_method' => 'user_cancel_reassign',
|
||||||
|
);
|
||||||
|
|
||||||
foreach ($expected_config as $file => $values) {
|
foreach ($expected_config as $file => $values) {
|
||||||
$config = config($file);
|
$config = config($file);
|
||||||
$this->verbose(print_r($config->get(), TRUE));
|
$this->verbose(print_r($config->get(), TRUE));
|
||||||
|
|
|
@ -91,6 +91,10 @@ db_insert('variable')->fields(array(
|
||||||
'name' => 'site_slogan',
|
'name' => 'site_slogan',
|
||||||
'value' => 's:31:"CMI makes Drupal 8 drush cex -y";',
|
'value' => 's:31:"CMI makes Drupal 8 drush cex -y";',
|
||||||
))
|
))
|
||||||
|
->values(array(
|
||||||
|
'name' => 'user_cancel_method',
|
||||||
|
'value' => 's:20:"user_cancel_reassign"',
|
||||||
|
))
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
db_update('variable')
|
db_update('variable')
|
||||||
|
|
|
@ -12,3 +12,4 @@ notify:
|
||||||
register_pending_approval: '1'
|
register_pending_approval: '1'
|
||||||
register: visitors
|
register: visitors
|
||||||
signatures: '0'
|
signatures: '0'
|
||||||
|
cancel_method: user_cancel_block
|
||||||
|
|
|
@ -35,7 +35,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Attempt to cancel account without permission.
|
* Attempt to cancel account without permission.
|
||||||
*/
|
*/
|
||||||
function testUserCancelWithoutPermission() {
|
function testUserCancelWithoutPermission() {
|
||||||
variable_set('user_cancel_method', 'user_cancel_reassign');
|
config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save();
|
||||||
|
|
||||||
// Create a user.
|
// Create a user.
|
||||||
$account = $this->drupalCreateUser(array());
|
$account = $this->drupalCreateUser(array());
|
||||||
|
@ -105,7 +105,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Attempt invalid account cancellations.
|
* Attempt invalid account cancellations.
|
||||||
*/
|
*/
|
||||||
function testUserCancelInvalid() {
|
function testUserCancelInvalid() {
|
||||||
variable_set('user_cancel_method', 'user_cancel_reassign');
|
config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save();
|
||||||
|
|
||||||
// Create a user.
|
// Create a user.
|
||||||
$account = $this->drupalCreateUser(array('cancel account'));
|
$account = $this->drupalCreateUser(array('cancel account'));
|
||||||
|
@ -147,7 +147,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Disable account and keep all content.
|
* Disable account and keep all content.
|
||||||
*/
|
*/
|
||||||
function testUserBlock() {
|
function testUserBlock() {
|
||||||
variable_set('user_cancel_method', 'user_cancel_block');
|
config('user.settings')->set('cancel_method', 'user_cancel_block')->save();
|
||||||
|
|
||||||
// Create a user.
|
// Create a user.
|
||||||
$web_user = $this->drupalCreateUser(array('cancel account'));
|
$web_user = $this->drupalCreateUser(array('cancel account'));
|
||||||
|
@ -182,7 +182,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Disable account and unpublish all content.
|
* Disable account and unpublish all content.
|
||||||
*/
|
*/
|
||||||
function testUserBlockUnpublish() {
|
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.
|
// Create a user.
|
||||||
$account = $this->drupalCreateUser(array('cancel account'));
|
$account = $this->drupalCreateUser(array('cancel account'));
|
||||||
|
@ -226,7 +226,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Delete account and anonymize all content.
|
* Delete account and anonymize all content.
|
||||||
*/
|
*/
|
||||||
function testUserAnonymize() {
|
function testUserAnonymize() {
|
||||||
variable_set('user_cancel_method', 'user_cancel_reassign');
|
config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save();
|
||||||
|
|
||||||
// Create a user.
|
// Create a user.
|
||||||
$account = $this->drupalCreateUser(array('cancel account'));
|
$account = $this->drupalCreateUser(array('cancel account'));
|
||||||
|
@ -277,7 +277,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Delete account and remove all content.
|
* Delete account and remove all content.
|
||||||
*/
|
*/
|
||||||
function testUserDelete() {
|
function testUserDelete() {
|
||||||
variable_set('user_cancel_method', 'user_cancel_delete');
|
config('user.settings')->set('cancel_method', 'user_cancel_delete')->save();
|
||||||
|
|
||||||
// Create a user.
|
// Create a user.
|
||||||
$account = $this->drupalCreateUser(array('cancel account', 'post comments', 'skip comment approval'));
|
$account = $this->drupalCreateUser(array('cancel account', 'post comments', 'skip comment approval'));
|
||||||
|
@ -339,7 +339,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Create an administrative user and delete another user.
|
* Create an administrative user and delete another user.
|
||||||
*/
|
*/
|
||||||
function testUserCancelByAdmin() {
|
function testUserCancelByAdmin() {
|
||||||
variable_set('user_cancel_method', 'user_cancel_reassign');
|
config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save();
|
||||||
|
|
||||||
// Create a regular user.
|
// Create a regular user.
|
||||||
$account = $this->drupalCreateUser(array());
|
$account = $this->drupalCreateUser(array());
|
||||||
|
@ -364,7 +364,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Tests deletion of a user account without an e-mail address.
|
* Tests deletion of a user account without an e-mail address.
|
||||||
*/
|
*/
|
||||||
function testUserWithoutEmailCancelByAdmin() {
|
function testUserWithoutEmailCancelByAdmin() {
|
||||||
variable_set('user_cancel_method', 'user_cancel_reassign');
|
config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save();
|
||||||
|
|
||||||
// Create a regular user.
|
// Create a regular user.
|
||||||
$account = $this->drupalCreateUser(array());
|
$account = $this->drupalCreateUser(array());
|
||||||
|
@ -392,7 +392,7 @@ class UserCancelTest extends WebTestBase {
|
||||||
* Create an administrative user and mass-delete other users.
|
* Create an administrative user and mass-delete other users.
|
||||||
*/
|
*/
|
||||||
function testMassUserCancelByAdmin() {
|
function testMassUserCancelByAdmin() {
|
||||||
variable_set('user_cancel_method', 'user_cancel_reassign');
|
config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save();
|
||||||
// Enable account cancellation notification.
|
// Enable account cancellation notification.
|
||||||
variable_set('user_mail_status_canceled_notify', TRUE);
|
variable_set('user_mail_status_canceled_notify', TRUE);
|
||||||
|
|
||||||
|
|
|
@ -332,6 +332,7 @@ function user_admin_settings($form, &$form_state) {
|
||||||
$form['registration_cancellation']['user_cancel_method'] = array(
|
$form['registration_cancellation']['user_cancel_method'] = array(
|
||||||
'#type' => 'item',
|
'#type' => 'item',
|
||||||
'#title' => t('When cancelling a user account'),
|
'#title' => t('When cancelling a user account'),
|
||||||
|
'#default_value' => $config->get('cancel_method'),
|
||||||
'#description' => t('Users with the %select-cancel-method or %administer-users <a href="@permissions-url">permissions</a> 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'))),
|
'#description' => t('Users with the %select-cancel-method or %administer-users <a href="@permissions-url">permissions</a> 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();
|
$form['registration_cancellation']['user_cancel_method'] += user_cancel_methods();
|
||||||
|
@ -665,6 +666,7 @@ function user_admin_settings_submit($form, &$form_state) {
|
||||||
->set('register', $form_state['values']['user_register'])
|
->set('register', $form_state['values']['user_register'])
|
||||||
->set('verify_mail', $form_state['values']['user_email_verification'])
|
->set('verify_mail', $form_state['values']['user_email_verification'])
|
||||||
->set('signatures', $form_state['values']['user_signatures'])
|
->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_activated', $form_state['values']['user_mail_status_activated_notify'])
|
||||||
->set('notify.status_blocked', $form_state['values']['user_mail_status_blocked_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'])
|
->set('notify.status_canceled', $form_state['values']['user_mail_status_canceled_notify'])
|
||||||
|
|
|
@ -491,6 +491,7 @@ function user_update_8004() {
|
||||||
'user_admin_role' => 'admin_role',
|
'user_admin_role' => 'admin_role',
|
||||||
'user_register' => 'register',
|
'user_register' => 'register',
|
||||||
'user_signatures' => 'signatures',
|
'user_signatures' => 'signatures',
|
||||||
|
'user_cancel_method' => 'cancel_method',
|
||||||
'user_mail_status_activated_notify' => 'notify.status_activated',
|
'user_mail_status_activated_notify' => 'notify.status_activated',
|
||||||
'user_mail_status_blocked_notify' => 'notify.status_blocked',
|
'user_mail_status_blocked_notify' => 'notify.status_blocked',
|
||||||
'user_mail_status_cancelled_notify' => 'notify.status_cancelled',
|
'user_mail_status_cancelled_notify' => 'notify.status_cancelled',
|
||||||
|
@ -503,12 +504,26 @@ function user_update_8004() {
|
||||||
'1' => 'visitors',
|
'1' => 'visitors',
|
||||||
'2' => 'visitors_admin_approval',
|
'2' => 'visitors_admin_approval',
|
||||||
);
|
);
|
||||||
|
|
||||||
$config = config('user.settings');
|
$config = config('user.settings');
|
||||||
$user_register = $config->get('register');
|
$user_register = $config->get('register');
|
||||||
|
$user_cancel_method = $config->get('cancel_method');
|
||||||
|
|
||||||
if (is_numeric($user_register) && isset($map[$user_register])) {
|
if (is_numeric($user_register) && isset($map[$user_register])) {
|
||||||
$config->set('register', $map[$user_register])->save();
|
$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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -230,7 +230,6 @@ function user_cancel_confirm_form($form, &$form_state, $account) {
|
||||||
$form['_account'] = array('#type' => 'value', '#value' => $account);
|
$form['_account'] = array('#type' => 'value', '#value' => $account);
|
||||||
|
|
||||||
// Display account cancellation method selection, if allowed.
|
// Display account cancellation method selection, if allowed.
|
||||||
$default_method = variable_get('user_cancel_method', 'user_cancel_block');
|
|
||||||
$admin_access = user_access('administer users');
|
$admin_access = user_access('administer users');
|
||||||
$can_select_method = $admin_access || user_access('select account cancellation method');
|
$can_select_method = $admin_access || user_access('select account cancellation method');
|
||||||
$form['user_cancel_method'] = array(
|
$form['user_cancel_method'] = array(
|
||||||
|
@ -365,14 +364,13 @@ function user_cancel_methods() {
|
||||||
drupal_alter('user_cancel_methods', $methods);
|
drupal_alter('user_cancel_methods', $methods);
|
||||||
|
|
||||||
// Turn all methods into real form elements.
|
// Turn all methods into real form elements.
|
||||||
$default_method = variable_get('user_cancel_method', 'user_cancel_block');
|
|
||||||
foreach ($methods as $name => $method) {
|
foreach ($methods as $name => $method) {
|
||||||
$form[$name] = array(
|
$form[$name] = array(
|
||||||
'#type' => 'radio',
|
'#type' => 'radio',
|
||||||
'#title' => $method['title'],
|
'#title' => $method['title'],
|
||||||
'#description' => (isset($method['description']) ? $method['description'] : NULL),
|
'#description' => (isset($method['description']) ? $method['description'] : NULL),
|
||||||
'#return_value' => $name,
|
'#return_value' => $name,
|
||||||
'#default_value' => $default_method,
|
'#default_value' => config('user.settings')->get('cancel_method'),
|
||||||
'#parents' => array('user_cancel_method'),
|
'#parents' => array('user_cancel_method'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue