diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index 0a7b261..36335c9 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -1757,7 +1757,7 @@ function comment_form($form, &$form_state, Comment $comment) {
'#default_value' => $author,
'#maxlength' => 60,
'#size' => 30,
- '#description' => t('Leave blank for %anonymous.', array('%anonymous' => variable_get('anonymous', t('Anonymous')))),
+ '#description' => t('Leave blank for %anonymous.', array('%anonymous' => config('user.settings')->get('anonymous'))),
'#autocomplete_path' => 'user/autocomplete',
);
}
@@ -1918,7 +1918,7 @@ function comment_preview(Comment $comment) {
$comment->picture = $account->picture;
}
elseif (empty($comment->name)) {
- $comment->name = variable_get('anonymous', t('Anonymous'));
+ $comment->name = config('user.settings')->get('anonymous');
}
$comment->created = !empty($comment->created) ? $comment->created : REQUEST_TIME;
@@ -2009,7 +2009,7 @@ function comment_submit(Comment $comment) {
// If the comment was posted by an anonymous user and no author name was
// required, use "Anonymous" by default.
if ($comment->is_anonymous && (!isset($comment->name) || $comment->name === '')) {
- $comment->name = variable_get('anonymous', t('Anonymous'));
+ $comment->name = config('user.settings')->get('anonymous');
}
// Validate the comment's subject. If not specified, extract from comment body.
@@ -2212,7 +2212,7 @@ function theme_comment_post_forbidden($variables) {
$destination = array('destination' => "node/$node->nid#comment-form");
}
- if (variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)) {
+ if (config('user.settings')->get('register')) {
// Users can register themselves.
return t('Log in or register to post comments', array('@login' => url('user/login', array('query' => $destination)), '@register' => url('user/register', array('query' => $destination))));
}
diff --git a/core/modules/comment/comment.tokens.inc b/core/modules/comment/comment.tokens.inc
index f4a401d..318c1b6 100644
--- a/core/modules/comment/comment.tokens.inc
+++ b/core/modules/comment/comment.tokens.inc
@@ -131,7 +131,7 @@ function comment_tokens($type, $tokens, array $data = array(), array $options =
break;
case 'name':
- $name = ($comment->uid == 0) ? variable_get('anonymous', t('Anonymous')) : $comment->name;
+ $name = ($comment->uid == 0) ? config('user.settings')->get('anonymous') : $comment->name;
$replacements[$original] = $sanitize ? filter_xss($name) : $name;
break;
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php
index 5181e32..21a2944 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php
@@ -21,7 +21,7 @@ class CommentAnonymousTest extends CommentTestBase {
function setUp() {
parent::setUp();
- variable_set('user_register', USER_REGISTER_VISITORS);
+ config('user.settings')->set('register', USER_REGISTER_VISITORS)->save();
}
/**
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentInterfaceTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentInterfaceTest.php
index b7f42ae..d0898ff 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentInterfaceTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentInterfaceTest.php
@@ -369,7 +369,7 @@ class CommentInterfaceTest extends CommentTestBase {
$this->assertEqual($node->comment_count, 1, t('The value of node comment_count is 1.'));
// Prepare for anonymous comment submission (comment approval enabled).
- variable_set('user_register', USER_REGISTER_VISITORS);
+ config('user.settings')->set('register', USER_REGISTER_VISITORS)->save();
$this->drupalLogin($this->admin_user);
user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
'access comments' => TRUE,
@@ -556,7 +556,7 @@ class CommentInterfaceTest extends CommentTestBase {
}
// Change user settings.
- variable_set('user_register', $info['user_register']);
+ config('user.settings')->set('register', $info['user_register'])->save();
// Change user permissions.
$rid = ($this->loggedInUser ? DRUPAL_AUTHENTICATED_RID : DRUPAL_ANONYMOUS_RID);
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentPreviewTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentPreviewTest.php
index e6eef56..10dc207 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentPreviewTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentPreviewTest.php
@@ -35,7 +35,7 @@ class CommentPreviewTest extends CommentTestBase {
// Login as web user and add a signature and a user picture.
$this->drupalLogin($this->web_user);
- variable_set('user_signatures', 1);
+ config('user.settings')->set('signatures', 1)->save();
variable_set('user_pictures', 1);
$test_signature = $this->randomName();
$edit['signature[value]'] = '' . $test_signature. '';
diff --git a/core/modules/contact/config/contact.settings.yml b/core/modules/contact/config/contact.settings.yml
new file mode 100644
index 0000000..1f77cc5
--- /dev/null
+++ b/core/modules/contact/config/contact.settings.yml
@@ -0,0 +1 @@
+user_contact_default_enabled: '1'
diff --git a/core/modules/contact/contact.install b/core/modules/contact/contact.install
index 5956740..423a44c 100644
--- a/core/modules/contact/contact.install
+++ b/core/modules/contact/contact.install
@@ -87,7 +87,17 @@ function contact_install() {
* Implements hook_uninstall().
*/
function contact_uninstall() {
- variable_del('contact_default_status');
variable_del('contact_threshold_limit');
variable_del('contact_threshold_window');
}
+
+/**
+ * Moves contact setting from variable to config.
+ *
+ * @ingroup config_upgrade
+ */
+function contact_update_8000() {
+ update_variables_to_config('contact.settings', array(
+ 'contact_default_status' => 'user_contact_default_enabled',
+ ));
+}
diff --git a/core/modules/contact/contact.module b/core/modules/contact/contact.module
index a6c8aed..0bc866a 100644
--- a/core/modules/contact/contact.module
+++ b/core/modules/contact/contact.module
@@ -234,7 +234,7 @@ function contact_form_user_profile_form_alter(&$form, &$form_state) {
* Implements hook_user_presave().
*/
function contact_user_presave($account) {
- $account->data['contact'] = isset($account->contact) ? $account->contact : variable_get('contact_default_status', 1);
+ $account->data['contact'] = isset($account->contact) ? $account->contact : config('contact.settings')->get('user_contact_default_enabled');
}
/**
@@ -250,10 +250,16 @@ function contact_form_user_admin_settings_alter(&$form, &$form_state) {
'#title' => t('Contact settings'),
'#weight' => 0,
);
- $form['contact']['contact_default_status'] = array(
+ $form['contact']['user_contact_default_enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enable the personal contact form by default for new users.'),
'#description' => t('Changing this setting will not affect existing users.'),
- '#default_value' => variable_get('contact_default_status', 1),
+ '#default_value' => config('contact.settings')->get('user_contact_default_enabled'),
);
+ // Add submit handler to save contact configuration.
+ array_unshift($form['#submit'], 'contact_form_user_admin_settings_submit');
}
+
+function contact_form_user_admin_settings_submit($form, &$form_state) {
+ config('contact.settings')->set('user_contact_default_enabled', $form_state['values']['user_contact_default_enabled'])->save();
+}
\ No newline at end of file
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php b/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php
index 0d5ff96..fec050d 100644
--- a/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php
+++ b/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php
@@ -32,7 +32,7 @@ class ContactPersonalTest extends WebTestBase {
$this->admin_user = $this->drupalCreateUser(array('administer contact forms', 'administer users'));
// Create some normal users with their contact forms enabled by default.
- variable_set('contact_default_status', TRUE);
+ config('contact.settings')->set('user_contact_default_enabled', 1)->save();
$this->web_user = $this->drupalCreateUser(array('access user contact forms'));
$this->contact_user = $this->drupalCreateUser();
}
@@ -84,7 +84,7 @@ class ContactPersonalTest extends WebTestBase {
// Disable the personal contact form.
$this->drupalLogin($this->admin_user);
- $edit = array('contact_default_status' => FALSE);
+ $edit = array('user_contact_default_enabled' => FALSE);
$this->drupalPost('admin/config/people/accounts', $edit, t('Save configuration'));
$this->assertText(t('The configuration options have been saved.'), t('Setting successfully saved.'));
$this->drupalLogout();
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
index 6519267..fcb5665 100644
--- a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
+++ b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
@@ -39,7 +39,7 @@ class ContactSitewideTest extends WebTestBase {
// Set settings.
$edit = array();
- $edit['contact_default_status'] = TRUE;
+ $edit['user_contact_default_enabled'] = TRUE;
$this->drupalPost('admin/config/people/accounts', $edit, t('Save configuration'));
$this->assertText(t('The configuration options have been saved.'), t('Setting successfully saved.'));
diff --git a/core/modules/filter/filter.admin.inc b/core/modules/filter/filter.admin.inc
index 40a5eab..e441cb1 100644
--- a/core/modules/filter/filter.admin.inc
+++ b/core/modules/filter/filter.admin.inc
@@ -154,7 +154,7 @@ function filter_admin_format_form($form, &$form_state, $format) {
// If editing an existing text format, pre-select its current permissions.
$form['roles']['#default_value'] = array_keys(filter_get_roles_by_format($format));
}
- elseif ($admin_role = variable_get('user_admin_role', 0)) {
+ elseif ($admin_role = config('user.settings')->get('admin_role')) {
// If adding a new text format and the site has an administrative role,
// pre-select that role so as to grant administrators access to the new
// text format permission by default.
diff --git a/core/modules/node/node.pages.inc b/core/modules/node/node.pages.inc
index 16b0ee5..767bf75 100644
--- a/core/modules/node/node.pages.inc
+++ b/core/modules/node/node.pages.inc
@@ -258,6 +258,7 @@ function node_form($form, &$form_state, Node $node) {
);
// Node author information for administrators
+ $anonymous_name = config('user.settings')->get('anonymous');
$form['author'] = array(
'#type' => 'fieldset',
'#access' => user_access('administer nodes'),
@@ -273,7 +274,7 @@ function node_form($form, &$form_state, Node $node) {
drupal_get_path('module', 'node') . '/node.js',
array(
'type' => 'setting',
- 'data' => array('anonymous' => variable_get('anonymous', t('Anonymous'))),
+ 'data' => array('anonymous' => $anonymous_name),
),
),
),
@@ -286,7 +287,7 @@ function node_form($form, &$form_state, Node $node) {
'#autocomplete_path' => 'user/autocomplete',
'#default_value' => !empty($node->name) ? $node->name : '',
'#weight' => -1,
- '#description' => t('Leave blank for %anonymous.', array('%anonymous' => variable_get('anonymous', t('Anonymous')))),
+ '#description' => t('Leave blank for %anonymous.', array('%anonymous' => $anonymous_name)),
);
$form['author']['date'] = array(
'#type' => 'textfield',
diff --git a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
index a143d34..4e30731 100644
--- a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
+++ b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
@@ -22,14 +22,14 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
function setUp() {
// Add language module too to test with some non-built-in languages.
parent::setUp('openid', 'openid_test', 'language');
- variable_set('user_register', USER_REGISTER_VISITORS);
+ config('user.settings')->set('register', USER_REGISTER_VISITORS)->save();
}
/**
* Test OpenID auto-registration with e-mail verification enabled.
*/
function testRegisterUserWithEmailVerification() {
- variable_set('user_email_verification', TRUE);
+ config('user.settings')->set('mail.verification', TRUE)->save();
variable_get('configurable_timezones', 1);
variable_set('date_default_timezone', 'Europe/Brussels');
@@ -86,7 +86,7 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
* Test OpenID auto-registration with e-mail verification disabled.
*/
function testRegisterUserWithoutEmailVerification() {
- variable_set('user_email_verification', FALSE);
+ config('user.settings')->set('mail.verification', FALSE)->save();
variable_get('configurable_timezones', 1);
variable_set('date_default_timezone', 'Europe/Brussels');
@@ -218,7 +218,7 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
* but no SREG.
*/
function testRegisterUserWithAXButNoSREG() {
- variable_set('user_email_verification', FALSE);
+ config('user.settings')->set('mail.verification', FALSE)->save();
variable_set('date_default_timezone', 'Europe/Brussels');
// Tell openid_test.module to respond with these AX fields.
diff --git a/core/modules/openid/openid.module b/core/modules/openid/openid.module
index 034c7c2..0b1b091 100644
--- a/core/modules/openid/openid.module
+++ b/core/modules/openid/openid.module
@@ -86,7 +86,7 @@ function openid_help($path, $arg) {
function openid_user_insert($account) {
if (!empty($account->openid_claimed_id)) {
// The user has registered after trying to log in via OpenID.
- if (variable_get('user_email_verification', TRUE)) {
+ if (config('user.settings')->get('mail.verification')) {
drupal_set_message(t('Once you have verified your e-mail address, you may log in via OpenID.'));
}
user_set_authmaps($account, array('authname_openid' => $account->openid_claimed_id));
@@ -216,9 +216,9 @@ function openid_form_user_register_form_alter(&$form, &$form_state) {
$form['account']['mail']['#default_value'] = current($ax_mail_values);
}
- // If user_email_verification is off, hide the password field and just fill
+ // If email verification is off, hide the password field and just fill
// with random password to avoid confusion.
- if (!variable_get('user_email_verification', TRUE)) {
+ if (!config('user.settings')->get('mail.verification')) {
$form['account']['pass']['#type'] = 'hidden';
$form['account']['pass']['#value'] = user_password();
}
@@ -708,7 +708,7 @@ function openid_authentication($response) {
$account = user_external_load($identity);
if (isset($account->uid)) {
- if (!variable_get('user_email_verification', TRUE) || $account->login) {
+ if (!config('user.settings')->get('mail.verification') || $account->login) {
// Check if user is blocked.
$state['values']['name'] = $account->name;
user_login_name_validate(array(), $state);
@@ -724,7 +724,7 @@ function openid_authentication($response) {
// Let other modules act on OpenID login
module_invoke_all('openid_response', $response, $account);
}
- elseif (variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)) {
+ elseif (config('user.settings')->get('register')) {
// Register new user.
// Save response for use in openid_form_user_register_form_alter().
diff --git a/core/modules/shortcut/shortcut.api.php b/core/modules/shortcut/shortcut.api.php
index 717a7c9..2fcbdc9 100644
--- a/core/modules/shortcut/shortcut.api.php
+++ b/core/modules/shortcut/shortcut.api.php
@@ -32,7 +32,7 @@
*/
function hook_shortcut_default_set($account) {
// Use a special set of default shortcuts for administrators only.
- if (in_array(variable_get('user_admin_role', 0), $account->roles)) {
+ if (in_array(config('user.settings')->get('admin_role'), $account->roles)) {
return variable_get('mymodule_shortcut_admin_default_set');
}
}
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/Tests/BrowserTest.php b/core/modules/simpletest/lib/Drupal/simpletest/Tests/BrowserTest.php
index 7e2beca..e976a48 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/Tests/BrowserTest.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/Tests/BrowserTest.php
@@ -23,7 +23,7 @@ class BrowserTest extends WebTestBase {
function setUp() {
parent::setUp();
- variable_set('user_register', USER_REGISTER_VISITORS);
+ config('user.settings')->set('register', USER_REGISTER_VISITORS)->save();
}
/**
diff --git a/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php b/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php
index d6be705..127ca96 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php
@@ -43,7 +43,7 @@ class ArbitraryRebuildTest extends WebTestBase {
),
);
field_create_instance($instance);
- variable_set('user_register', USER_REGISTER_VISITORS);
+ config('user.settings')->set('register', USER_REGISTER_VISITORS)->save();
}
/**
diff --git a/core/modules/system/system.api.php b/core/modules/system/system.api.php
index 3d2cae0..07c15e8 100644
--- a/core/modules/system/system.api.php
+++ b/core/modules/system/system.api.php
@@ -3781,7 +3781,7 @@ function hook_tokens($type, $tokens, array $data = array(), array $options = arr
// Default values for the chained tokens handled below.
case 'author':
- $name = ($node->uid == 0) ? variable_get('anonymous', t('Anonymous')) : $node->name;
+ $name = ($node->uid == 0) ? config('user.settings')->get('anonymous') : $node->name;
$replacements[$original] = $sanitize ? filter_xss($name) : $name;
break;
diff --git a/core/modules/user/config/user.settings.yml b/core/modules/user/config/user.settings.yml
new file mode 100644
index 0000000..3c0ecff
--- /dev/null
+++ b/core/modules/user/config/user.settings.yml
@@ -0,0 +1,9 @@
+anonymous: Anonymous
+admin_role: 0
+register: visitors
+signatures: '0'
+mail:
+ status_activated_notify: '1'
+ status_blocked_notify: '0'
+ status_cancelled_notify: '0'
+ verification: '1'
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserEditedOwnAccountTest.php b/core/modules/user/lib/Drupal/user/Tests/UserEditedOwnAccountTest.php
index d7d3bb2..e06298f 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserEditedOwnAccountTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserEditedOwnAccountTest.php
@@ -25,7 +25,7 @@ class UserEditedOwnAccountTest extends WebTestBase {
function testUserEditedOwnAccount() {
// Change account setting 'Who can register accounts?' to Administrators
// only.
- variable_set('user_register', USER_REGISTER_ADMINISTRATORS_ONLY);
+ config('user.settings')->set('register', USER_REGISTER_ADMINISTRATORS_ONLY)->save();
// Create a new user account and log in.
$account = $this->drupalCreateUser(array('change own username'));
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php b/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php
index dc85ade..816c4e1 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php
@@ -36,7 +36,7 @@ class UserEntityCallbacksTest extends WebTestBase {
// Setup a random anonymous name to be sure the name is used.
$name = $this->randomName();
- variable_set('anonymous', $name);
+ config('user.settings')->set('anonymous', $name)->save();
$this->assertEqual($this->anonymous->label(), $name, t('The variable anonymous should be used for name of uid 0'));
}
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserLanguageCreationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserLanguageCreationTest.php
index dce7d0b..12cc00f 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserLanguageCreationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserLanguageCreationTest.php
@@ -24,7 +24,7 @@ class UserLanguageCreationTest extends WebTestBase {
function setUp() {
parent::setUp(array('user', 'language'));
- variable_set('user_register', USER_REGISTER_VISITORS);
+ config('user.settings')->set('register', USER_REGISTER_VISITORS)->save();
}
/**
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
index 56ad9a0..a591a04 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -23,16 +23,17 @@ class UserRegistrationTest extends WebTestBase {
}
function testRegistrationWithEmailVerification() {
+ $config = config('user.settings');
// Require e-mail verification.
- variable_set('user_email_verification', TRUE);
+ $config->set('mail.verification', TRUE)->save();
// Set registration to administrator only.
- variable_set('user_register', USER_REGISTER_ADMINISTRATORS_ONLY);
+ $config->set('register', USER_REGISTER_ADMINISTRATORS_ONLY)->save();
$this->drupalGet('user/register');
$this->assertResponse(403, t('Registration page is inaccessible when only administrators can create accounts.'));
// Allow registration by site visitors without administrator approval.
- variable_set('user_register', USER_REGISTER_VISITORS);
+ $config->set('register', USER_REGISTER_VISITORS)->save();
$edit = array();
$edit['name'] = $name = $this->randomName();
$edit['mail'] = $mail = $edit['name'] . '@example.com';
@@ -43,7 +44,7 @@ class UserRegistrationTest extends WebTestBase {
$this->assertTrue($new_user->status, t('New account is active after registration.'));
// Allow registration by site visitors, but require administrator approval.
- variable_set('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL);
+ $config->set('register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)->save();
$edit = array();
$edit['name'] = $name = $this->randomName();
$edit['mail'] = $mail = $edit['name'] . '@example.com';
@@ -54,11 +55,12 @@ class UserRegistrationTest extends WebTestBase {
}
function testRegistrationWithoutEmailVerification() {
+ $config = config('user.settings');
// Don't require e-mail verification.
- variable_set('user_email_verification', FALSE);
+ $config->set('mail.verification', FALSE)->save();
// Allow registration by site visitors without administrator approval.
- variable_set('user_register', USER_REGISTER_VISITORS);
+ $config->set('register', USER_REGISTER_VISITORS)->save();
$edit = array();
$edit['name'] = $name = $this->randomName();
$edit['mail'] = $mail = $edit['name'] . '@example.com';
@@ -79,7 +81,7 @@ class UserRegistrationTest extends WebTestBase {
$this->drupalLogout();
// Allow registration by site visitors, but require administrator approval.
- variable_set('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL);
+ $config->set('register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)->save();
$edit = array();
$edit['name'] = $name = $this->randomName();
$edit['mail'] = $mail = $edit['name'] . '@example.com';
@@ -113,11 +115,13 @@ class UserRegistrationTest extends WebTestBase {
}
function testRegistrationEmailDuplicates() {
- // Don't require e-mail verification.
- variable_set('user_email_verification', FALSE);
- // Allow registration by site visitors without administrator approval.
- variable_set('user_register', USER_REGISTER_VISITORS);
+ // Don't require e-mail verification.
+ // Then, allow registration by site visitors without administrator approval.
+ config('user.settings')
+ ->set('mail.verification', FALSE)
+ ->set('register', USER_REGISTER_VISITORS)
+ ->save();
// Set up a user to check for duplicates.
$duplicate_user = $this->drupalCreateUser();
@@ -139,10 +143,12 @@ class UserRegistrationTest extends WebTestBase {
function testRegistrationDefaultValues() {
// Allow registration by site visitors without administrator approval.
- variable_set('user_register', USER_REGISTER_VISITORS);
-
- // Don't require e-mail verification.
- variable_set('user_email_verification', FALSE);
+ // Then, don't require e-mail verification.
+ $config = config('user.settings');
+ $config
+ ->set('register', USER_REGISTER_VISITORS)
+ ->set('mail.verification', FALSE)
+ ->save();
// Set the default timezone to Brussels.
variable_set('configurable_timezones', 1);
@@ -168,7 +174,7 @@ class UserRegistrationTest extends WebTestBase {
$this->assertEqual($new_user->theme, '', t('Correct theme field.'));
$this->assertEqual($new_user->signature, '', t('Correct signature field.'));
$this->assertTrue(($new_user->created > REQUEST_TIME - 20 ), t('Correct creation time.'));
- $this->assertEqual($new_user->status, variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL) == USER_REGISTER_VISITORS ? 1 : 0, t('Correct status field.'));
+ $this->assertEqual($new_user->status, $config->get('register') == USER_REGISTER_VISITORS ? 1 : 0, t('Correct status field.'));
$this->assertEqual($new_user->timezone, variable_get('date_default_timezone'), t('Correct time zone field.'));
$this->assertEqual($new_user->langcode, language_default()->langcode, t('Correct language field.'));
$this->assertEqual($new_user->preferred_langcode, language_default()->langcode, t('Correct preferred language field.'));
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php b/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php
index 19aa8c9..96cf0b6 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php
@@ -25,7 +25,7 @@ class UserSignatureTest extends WebTestBase {
parent::setUp('comment');
// Enable user signatures.
- variable_set('user_signatures', 1);
+ config('user.settings')->set('signatures', 1)->save();
// Create Basic page node type.
$this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
diff --git a/core/modules/user/user.admin.inc b/core/modules/user/user.admin.inc
index 58b0218..a9b1019 100644
--- a/core/modules/user/user.admin.inc
+++ b/core/modules/user/user.admin.inc
@@ -257,9 +257,10 @@ function user_admin_account_validate($form, &$form_state) {
* Form builder; Configure user settings for this site.
*
* @ingroup forms
- * @see system_settings_form()
+ * @see system_config_form()
*/
-function user_admin_settings() {
+function user_admin_settings($form, &$form_state) {
+ $config = config('user.settings');
// Settings for anonymous users.
$form['anonymous_settings'] = array(
'#type' => 'fieldset',
@@ -268,7 +269,7 @@ function user_admin_settings() {
$form['anonymous_settings']['anonymous'] = array(
'#type' => 'textfield',
'#title' => t('Name'),
- '#default_value' => variable_get('anonymous', t('Anonymous')),
+ '#default_value' => $config->get('anonymous'),
'#description' => t('The name used to indicate anonymous users.'),
'#required' => TRUE,
);
@@ -289,7 +290,7 @@ function user_admin_settings() {
$form['admin_role']['user_admin_role'] = array(
'#type' => 'select',
'#title' => t('Administrator role'),
- '#default_value' => variable_get('user_admin_role', 0),
+ '#default_value' => $config->get('admin_role'),
'#options' => $roles,
'#description' => t('This role will be automatically assigned new permissions whenever a module is enabled. Changing this setting will not affect existing permissions.'),
);
@@ -302,7 +303,7 @@ function user_admin_settings() {
$form['registration_cancellation']['user_register'] = array(
'#type' => 'radios',
'#title' => t('Who can register accounts?'),
- '#default_value' => variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL),
+ '#default_value' => $config->get('register'),
'#options' => array(
USER_REGISTER_ADMINISTRATORS_ONLY => t('Administrators only'),
USER_REGISTER_VISITORS => t('Visitors'),
@@ -312,7 +313,7 @@ function user_admin_settings() {
$form['registration_cancellation']['user_email_verification'] = array(
'#type' => 'checkbox',
'#title' => t('Require e-mail verification when a visitor creates an account.'),
- '#default_value' => variable_get('user_email_verification', TRUE),
+ '#default_value' => $config->get('mail.verification'),
'#description' => t('New users will be required to validate their e-mail address prior to logging into the site, and will be assigned a system-generated password. With this setting disabled, users will be logged in immediately upon registering, and may select their own passwords during registration.')
);
module_load_include('inc', 'user', 'user.pages');
@@ -342,7 +343,7 @@ function user_admin_settings() {
$form['personalization']['user_signatures'] = array(
'#type' => 'checkbox',
'#title' => t('Enable signatures.'),
- '#default_value' => variable_get('user_signatures', 0),
+ '#default_value' => $config->get('signatures'),
);
// If picture support is enabled, check whether the picture directory exists.
if (variable_get('user_pictures', 0)) {
@@ -432,7 +433,7 @@ function user_admin_settings() {
'#type' => 'fieldset',
'#title' => t('Welcome (new user created by administrator)'),
'#collapsible' => TRUE,
- '#collapsed' => (variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL) != USER_REGISTER_ADMINISTRATORS_ONLY),
+ '#collapsed' => ($config->get('register') != USER_REGISTER_ADMINISTRATORS_ONLY),
'#description' => t('Edit the welcome e-mail messages sent to new member accounts created by an administrator.') . ' ' . $email_token_help,
'#group' => 'email',
);
@@ -453,7 +454,7 @@ function user_admin_settings() {
'#type' => 'fieldset',
'#title' => t('Welcome (awaiting approval)'),
'#collapsible' => TRUE,
- '#collapsed' => (variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL) != USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL),
+ '#collapsed' => ($config->get('register') != USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL),
'#description' => t('Edit the welcome e-mail messages sent to new members upon registering, when administrative approval is required.') . ' ' . $email_token_help,
'#group' => 'email',
);
@@ -474,7 +475,7 @@ function user_admin_settings() {
'#type' => 'fieldset',
'#title' => t('Welcome (no approval required)'),
'#collapsible' => TRUE,
- '#collapsed' => (variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL) != USER_REGISTER_VISITORS),
+ '#collapsed' => ($config->get('register') != USER_REGISTER_VISITORS),
'#description' => t('Edit the welcome e-mail messages sent to new members upon registering, when no administrator approval is required.') . ' ' . $email_token_help,
'#group' => 'email',
);
@@ -524,7 +525,7 @@ function user_admin_settings() {
$form['email_activated']['user_mail_status_activated_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is activated.'),
- '#default_value' => variable_get('user_mail_status_activated_notify', TRUE),
+ '#default_value' => $config->get('mail.status_activated_notify'),
);
$form['email_activated']['settings'] = array(
'#type' => 'container',
@@ -559,7 +560,7 @@ function user_admin_settings() {
$form['email_blocked']['user_mail_status_blocked_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is blocked.'),
- '#default_value' => variable_get('user_mail_status_blocked_notify', FALSE),
+ '#default_value' => $config->get('mail.status_blocked_notify'),
);
$form['email_blocked']['settings'] = array(
'#type' => 'container',
@@ -615,7 +616,7 @@ function user_admin_settings() {
$form['email_canceled']['user_mail_status_canceled_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
- '#default_value' => variable_get('user_mail_status_canceled_notify', FALSE),
+ '#default_value' => $config->get('mail.status_canceled_notify'),
);
$form['email_canceled']['settings'] = array(
'#type' => 'container',
@@ -639,7 +640,23 @@ function user_admin_settings() {
'#rows' => 3,
);
- return system_settings_form($form);
+ return system_config_form($form, $form_state);
+}
+
+/**
+ * Save account settings settings.
+ */
+function user_admin_settings_submit($form, $form_state) {
+ config('user.settings')
+ ->set('anonymous', $form_state['values']['anonymous'])
+ ->set('admin_role', $form_state['values']['user_admin_role'])
+ ->set('register', $form_state['values']['user_register'])
+ ->set('mail.verification', $form_state['values']['user_email_verification'])
+ ->set('signatures', $form_state['values']['user_signatures'])
+ ->set('mail.status_activated_notify', $form_state['values']['user_mail_status_activated_notify'])
+ ->set('mail.status_blocked_notify', $form_state['values']['user_mail_status_blocked_notify'])
+ ->set('mail.status_canceled_notify', $form_state['values']['user_mail_status_canceled_notify'])
+ ->save();
}
/**
diff --git a/core/modules/user/user.install b/core/modules/user/user.install
index 5ec57da..87a3be1 100644
--- a/core/modules/user/user.install
+++ b/core/modules/user/user.install
@@ -442,5 +442,23 @@ function user_update_8002() {
}
/**
+ * Moves account settings from variable to config.
+ *
+ * @ingroup config_upgrade
+ */
+function user_update_8003() {
+ update_variables_to_config('user.settings', array(
+ 'anonymous' => 'anonymous',
+ 'user_admin_role' => 'admin_role',
+ 'user_register' => 'register',
+ 'user_signatures' => 'signatures',
+ 'user_mail_status_activated_notify' => 'mail.status_activated_notify',
+ 'user_mail_status_blocked_notify' => 'mail.status_blocked_notify',
+ 'user_mail_status_cancelled_notify' => 'mail.status_cancelled_notify',
+ 'user_email_verification' => 'mail.verification',
+ ));
+}
+
+/**
* @} End of "addtogroup updates-7.x-to-8.x".
*/
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 2250110..220c6e2 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -578,7 +578,7 @@ function user_permission() {
),
'cancel account' => array(
'title' => t('Cancel own user account'),
- 'description' => t('Note: content may be kept, unpublished, deleted or transferred to the %anonymous-name user depending on the configured user settings.', array('%anonymous-name' => variable_get('anonymous', t('Anonymous')), '@user-settings-url' => url('admin/config/people/accounts'))),
+ 'description' => t('Note: content may be kept, unpublished, deleted or transferred to the %anonymous-name user depending on the configured user settings.', array('%anonymous-name' => config('user.settings')->get('anonymous'), '@user-settings-url' => url('admin/config/people/accounts'))),
),
'select account cancellation method' => array(
'title' => t('Select method for cancelling own account'),
@@ -711,6 +711,7 @@ function user_account_form(&$form, &$form_state) {
global $user;
$language_interface = drupal_container()->get(LANGUAGE_TYPE_INTERFACE);
+ $config = config('user.settings');
$account = $form['#user'];
$register = ($form['#user']->uid > 0 ? FALSE : TRUE);
@@ -787,7 +788,7 @@ function user_account_form(&$form, &$form_state) {
$form['#validate'][] = 'user_validate_current_pass';
}
}
- elseif (!variable_get('user_email_verification', TRUE) || $admin) {
+ elseif (!$config->get('mail.verification') || $admin) {
$form['account']['pass'] = array(
'#type' => 'password_confirm',
'#size' => 25,
@@ -800,7 +801,7 @@ function user_account_form(&$form, &$form_state) {
$status = isset($account->status) ? $account->status : 1;
}
else {
- $status = $register ? variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL) == USER_REGISTER_VISITORS : $account->status;
+ $status = $register ? $config->get('register') == USER_REGISTER_VISITORS : $account->status;
}
$form['account']['status'] = array(
'#type' => 'radios',
@@ -843,7 +844,7 @@ function user_account_form(&$form, &$form_state) {
'#type' => 'fieldset',
'#title' => t('Signature settings'),
'#weight' => 1,
- '#access' => (!$register && variable_get('user_signatures', 0)),
+ '#access' => (!$register && $config->get('signatures')),
);
$form['signature_settings']['signature'] = array(
@@ -1058,7 +1059,7 @@ function user_login_block($form) {
'#value' => t('Log in'),
);
$items = array();
- if (variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)) {
+ if (config('user.settings')->get('register')) {
$items[] = l(t('Create new account'), 'user/register', array('attributes' => array('title' => t('Create a new user account.'))));
}
$items[] = l(t('Request new password'), 'user/password', array('attributes' => array('title' => t('Request new password via e-mail.'))));
@@ -1221,7 +1222,7 @@ function user_preprocess_block(&$variables) {
* printed to the page.
*/
function user_format_name($account) {
- $name = !empty($account->name) ? $account->name : variable_get('anonymous', t('Anonymous'));
+ $name = !empty($account->name) ? $account->name : config('user.settings')->get('anonymous');
drupal_alter('user_format_name', $name, $account);
return $name;
}
@@ -1419,7 +1420,7 @@ function user_is_logged_in() {
}
function user_register_access() {
- return user_is_anonymous() && variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL);
+ return user_is_anonymous() && config('user.settings')->get('register');
}
/**
@@ -3080,7 +3081,7 @@ function user_multiple_cancel_confirm($form, &$form_state) {
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
'#default_value' => FALSE,
- '#access' => variable_get('user_mail_status_canceled_notify', FALSE),
+ '#access' => config('user.settings')->get('mail.status_canceled_notify'),
'#description' => t('When enabled, the user will receive an e-mail notification after the account has been cancelled.'),
);
@@ -3209,7 +3210,7 @@ function user_build_filter_query(SelectInterface $query) {
* Implements hook_comment_view().
*/
function user_comment_view($comment) {
- if (variable_get('user_signatures', 0) && !empty($comment->signature)) {
+ if (config('user.settings')->get('signatures') && !empty($comment->signature)) {
// @todo This alters and replaces the original object value, so a
// hypothetical process of loading, viewing, and saving will hijack the
// stored data. Consider renaming to $comment->signature_safe or similar
@@ -3299,9 +3300,8 @@ function user_preferred_language($account, $default = NULL) {
*/
function _user_mail_notify($op, $account, $language = NULL) {
// By default, we always notify except for canceled and blocked.
- $default_notify = ($op != 'status_canceled' && $op != 'status_blocked');
- $notify = variable_get('user_mail_' . $op . '_notify', $default_notify);
- if ($notify) {
+ $notify = config('user.settings')->get('mail.' . $op . '_notify');
+ if ($notify || ($op != 'status_canceled' && $op != 'status_blocked')) {
$params['account'] = $account;
$language = $language ? $language : user_preferred_language($account);
$mail = drupal_mail('user', $op, $account->mail, $language, $params);
@@ -3568,8 +3568,9 @@ function user_register_validate($form, &$form_state) {
*/
function user_register_submit($form, &$form_state) {
$admin = $form_state['values']['administer_users'];
+ $mail_verification = config('user.settings')->get('mail.verification');
- if (!variable_get('user_email_verification', TRUE) || $admin) {
+ if (!$mail_verification || $admin) {
$pass = $form_state['values']['pass'];
}
else {
@@ -3608,7 +3609,7 @@ function user_register_submit($form, &$form_state) {
drupal_set_message(t('Created a new user account for %name. No e-mail has been sent.', array('@url' => url($uri['path'], $uri['options']), '%name' => $account->name)));
}
// No e-mail verification required; log in user immediately.
- elseif (!$admin && !variable_get('user_email_verification', TRUE) && $account->status) {
+ elseif (!$admin && !$mail_verification && $account->status) {
_user_mail_notify('register_no_approval_required', $account);
$form_state['uid'] = $account->uid;
user_login_submit(array(), $form_state);
@@ -3645,7 +3646,7 @@ function user_register_submit($form, &$form_state) {
*/
function user_modules_installed($modules) {
// Assign all available permissions to the administrator role.
- $rid = variable_get('user_admin_role', 0);
+ $rid = config('user.settings')->get('admin_role');
if ($rid) {
$permissions = array();
foreach ($modules as $module) {
diff --git a/core/modules/user/user.pages.inc b/core/modules/user/user.pages.inc
index b568f66..db57ed5 100644
--- a/core/modules/user/user.pages.inc
+++ b/core/modules/user/user.pages.inc
@@ -330,7 +330,7 @@ function user_cancel_confirm_form($form, &$form_state, $account) {
'#description' => t('When enabled, the user must confirm the account cancellation via e-mail.'),
);
// Also allow to send account canceled notification mail, if enabled.
- $default_notify = variable_get('user_mail_status_canceled_notify', FALSE);
+ $default_notify = config('user.settings')->get('mail.status_canceled_notify');
$form['user_cancel_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
@@ -419,6 +419,7 @@ function user_cancel_confirm_form_submit($form, &$form_state) {
* @see user_multiple_cancel_confirm()
*/
function user_cancel_methods() {
+ $anonymous_name = config('user.settings')->get('anonymous');
$methods = array(
'user_cancel_block' => array(
'title' => t('Disable the account and keep its content.'),
@@ -429,8 +430,8 @@ function user_cancel_methods() {
'description' => t('Your account will be blocked and you will no longer be able to log in. All of your content will be hidden from everyone but administrators.'),
),
'user_cancel_reassign' => array(
- 'title' => t('Delete the account and make its content belong to the %anonymous-name user.', array('%anonymous-name' => variable_get('anonymous', t('Anonymous')))),
- 'description' => t('Your account will be removed and all account information deleted. All of your content will be assigned to the %anonymous-name user.', array('%anonymous-name' => variable_get('anonymous', t('Anonymous')))),
+ 'title' => t('Delete the account and make its content belong to the %anonymous-name user.', array('%anonymous-name' => $anonymous_name)),
+ 'description' => t('Your account will be removed and all account information deleted. All of your content will be assigned to the %anonymous-name user.', array('%anonymous-name' => $anonymous_name)),
),
'user_cancel_delete' => array(
'title' => t('Delete the account and its content.'),
@@ -472,7 +473,7 @@ function user_cancel_confirm($account, $timestamp = 0, $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_notify' => isset($account->data['user_cancel_notify']) ? $account->data['user_cancel_notify'] : config('user.settings')->get('mail.status_canceled_notify'),
);
user_cancel($edit, $account->uid, $account->data['user_cancel_method']);
// Since user_cancel() is not invoked via Form API, batch processing needs
diff --git a/profiles/minimal/minimal.install b/profiles/minimal/minimal.install
index 2c4cee1..224e54d 100644
--- a/profiles/minimal/minimal.install
+++ b/profiles/minimal/minimal.install
@@ -82,7 +82,7 @@ function minimal_install() {
config('system.site')->set('page.front', 'node')->save();
// Allow visitor account creation, but with administrative approval.
- variable_set('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL);
+ config('user.settings')->set('register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)->save();
// Enable default permissions for system roles.
user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access content'));
diff --git a/profiles/standard/standard.install b/profiles/standard/standard.install
index 27faf10..32221b3 100644
--- a/profiles/standard/standard.install
+++ b/profiles/standard/standard.install
@@ -250,7 +250,8 @@ function standard_install() {
variable_set('user_picture_style', 'thumbnail');
// Allow visitor account creation with administrative approval.
- variable_set('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL);
+ $user_settings = config('user.settings');
+ $user_settings->set('register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)->save();
// Create a default vocabulary named "Tags", enabled for the 'article' content type.
$description = st('Use tags to group articles on similar topics into categories.');
@@ -385,7 +386,7 @@ function standard_install() {
user_role_save($admin_role);
user_role_grant_permissions($admin_role->rid, array_keys(module_invoke_all('permission')));
// Set this as the administrator role.
- variable_set('user_admin_role', $admin_role->rid);
+ $user_settings->set('admin_role', $admin_role->rid)->save();
// Assign user 1 the "administrator" role.
db_insert('users_roles')
diff --git a/profiles/testing/testing.install b/profiles/testing/testing.install
index bdd6154..7ab1118 100644
--- a/profiles/testing/testing.install
+++ b/profiles/testing/testing.install
@@ -13,7 +13,7 @@
*/
function testing_install() {
// Allow visitor account creation, but with administrative approval.
- variable_set('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL);
+ config('user.settings')->set('register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)->save();
// Enable default permissions for system roles.
// @todo Remove dependency on Node module.