diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index aef6209..8ab8070 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -1704,7 +1704,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;
@@ -1839,7 +1839,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') != USER_REGISTER_ADMINISTRATORS_ONLY) {
// 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/CommentFormController.php b/core/modules/comment/lib/Drupal/comment/CommentFormController.php
index 9b3094e..f0f16c2 100644
--- a/core/modules/comment/lib/Drupal/comment/CommentFormController.php
+++ b/core/modules/comment/lib/Drupal/comment/CommentFormController.php
@@ -85,7 +85,7 @@ class CommentFormController extends EntityFormController {
'#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',
);
}
@@ -284,7 +284,7 @@ class CommentFormController extends EntityFormController {
// 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
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 2c324e2..e122141 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);
@@ -648,7 +648,7 @@ class CommentInterfaceTest extends CommentTestBase {
if (!$this->loggedInUser) {
if (user_access('post comments', $this->web_user)) {
// The note depends on whether users are actually able to register.
- if ($info['user_register']) {
+ if ($info['user_register'] != USER_REGISTER_ADMINISTRATORS_ONLY) {
$this->assertText('Log in or register to post comments');
}
else {
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/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/lib/Drupal/node/NodeFormController.php b/core/modules/node/lib/Drupal/node/NodeFormController.php
index c5763e8..51f4308 100644
--- a/core/modules/node/lib/Drupal/node/NodeFormController.php
+++ b/core/modules/node/lib/Drupal/node/NodeFormController.php
@@ -54,6 +54,7 @@ class NodeFormController extends EntityFormController {
* Overrides Drupal\entity\EntityFormController::form().
*/
public function form(array $form, array &$form_state, EntityInterface $node) {
+ $user_config = config('user.settings');
// Some special stuff when previewing a node.
if (isset($form_state['node_preview'])) {
$form['#prefix'] = $form_state['node_preview'];
@@ -171,7 +172,7 @@ class NodeFormController extends EntityFormController {
drupal_get_path('module', 'node') . '/node.js',
array(
'type' => 'setting',
- 'data' => array('anonymous' => variable_get('anonymous', t('Anonymous'))),
+ 'data' => array('anonymous' => $user_config->get('anonymous')),
),
),
),
@@ -185,7 +186,7 @@ class NodeFormController extends EntityFormController {
'#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' => $user_config->get('anonymous'))),
);
$form['author']['date'] = array(
diff --git a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
index c46676d..422c07a 100644
--- a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
+++ b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
@@ -31,14 +31,14 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
function setUp() {
parent::setUp();
- 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('verify_mail', TRUE)->save();
variable_get('configurable_timezones', 1);
variable_set('date_default_timezone', 'Europe/Brussels');
@@ -95,7 +95,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('verify_mail', FALSE)->save();
variable_get('configurable_timezones', 1);
variable_set('date_default_timezone', 'Europe/Brussels');
@@ -227,7 +227,7 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
* but no SREG.
*/
function testRegisterUserWithAXButNoSREG() {
- variable_set('user_email_verification', FALSE);
+ config('user.settings')->set('verify_mail', 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 5098216..51d3f5c 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('verify_mail')) {
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('verify_mail')) {
$form['account']['pass']['#type'] = 'hidden';
$form['account']['pass']['#value'] = user_password();
}
@@ -709,7 +709,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('verify_mail') || $account->login) {
// Check if user is blocked.
$state['values']['name'] = $account->name;
user_login_name_validate(array(), $state);
@@ -725,7 +725,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') != USER_REGISTER_ADMINISTRATORS_ONLY) {
// 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 824f829..3e39788 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php
@@ -52,7 +52,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 1333429..9554463 100644
--- a/core/modules/system/system.api.php
+++ b/core/modules/system/system.api.php
@@ -3783,7 +3783,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/lib/Drupal/user/AccountFormController.php b/core/modules/user/lib/Drupal/user/AccountFormController.php
index 31ca843..2c6f182 100644
--- a/core/modules/user/lib/Drupal/user/AccountFormController.php
+++ b/core/modules/user/lib/Drupal/user/AccountFormController.php
@@ -20,6 +20,7 @@ abstract class AccountFormController extends EntityFormController {
*/
public function form(array $form, array &$form_state, EntityInterface $account) {
global $user;
+ $config = config('user.settings');
$language_interface = language(LANGUAGE_TYPE_INTERFACE);
$register = empty($account->uid);
@@ -101,7 +102,7 @@ abstract class AccountFormController extends EntityFormController {
$form['#validate'][] = 'user_validate_current_pass';
}
}
- elseif (!variable_get('user_email_verification', TRUE) || $admin) {
+ elseif (!$config->get('verify_mail') || $admin) {
$form['account']['pass'] = array(
'#type' => 'password_confirm',
'#size' => 25,
@@ -114,7 +115,7 @@ abstract class AccountFormController extends EntityFormController {
$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(
@@ -159,7 +160,7 @@ abstract class AccountFormController extends EntityFormController {
'#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(
diff --git a/core/modules/user/lib/Drupal/user/RegisterFormController.php b/core/modules/user/lib/Drupal/user/RegisterFormController.php
index 84134b7..77aa58b 100644
--- a/core/modules/user/lib/Drupal/user/RegisterFormController.php
+++ b/core/modules/user/lib/Drupal/user/RegisterFormController.php
@@ -74,7 +74,7 @@ class RegisterFormController extends AccountFormController {
public function submit(array $form, array &$form_state) {
$admin = $form_state['values']['administer_users'];
- if (!variable_get('user_email_verification', TRUE) || $admin) {
+ if (!config('user.settings')->get('verify_mail') || $admin) {
$pass = $form_state['values']['pass'];
}
else {
@@ -121,7 +121,7 @@ class RegisterFormController extends AccountFormController {
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 && !config('user.settings')->get('verify_mail') && $account->status) {
_user_mail_notify('register_no_approval_required', $account);
$form_state['uid'] = $account->uid;
user_login_submit(array(), $form_state);
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php b/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php
index 68c9e94..0d12cff 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php
@@ -250,7 +250,7 @@ class UserCancelTest extends WebTestBase {
$this->drupalGet('user/' . $account->uid . '/edit');
$this->drupalPost(NULL, NULL, t('Cancel account'));
$this->assertText(t('Are you sure you want to cancel your account?'), t('Confirmation form to cancel account displayed.'));
- $this->assertRaw(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')))), t('Informs that all content will be attributed to anonymous account.'));
+ $this->assertRaw(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' => config('user.settings')->get('anonymous'))), t('Informs that all content will be attributed to anonymous account.'));
// Confirm account cancellation.
$timestamp = time();
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 a631620..13eb006 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php
@@ -44,7 +44,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 37ffef7..d611b57 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserLanguageCreationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserLanguageCreationTest.php
@@ -31,8 +31,7 @@ class UserLanguageCreationTest 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/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
index fb13f52..d89192f 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -27,16 +27,17 @@ class UserRegistrationTest extends WebTestBase {
}
function testRegistrationWithEmailVerification() {
+ $config = config('user.settings');
// Require e-mail verification.
- variable_set('user_email_verification', TRUE);
+ $config->set('verify_mail', 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';
@@ -47,7 +48,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';
@@ -59,11 +60,14 @@ class UserRegistrationTest extends WebTestBase {
}
function testRegistrationWithoutEmailVerification() {
- // Don't require e-mail verification.
- variable_set('user_email_verification', FALSE);
+ $config = config('user.settings');
+ // Don't require e-mail verification and allow registration by site visitors
+ // without administrator approval.
+ $config
+ ->set('verify_mail', FALSE)
+ ->set('register', USER_REGISTER_VISITORS)
+ ->save();
- // Allow registration by site visitors without administrator approval.
- variable_set('user_register', USER_REGISTER_VISITORS);
$edit = array();
$edit['name'] = $name = $this->randomName();
$edit['mail'] = $mail = $edit['name'] . '@example.com';
@@ -85,7 +89,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';
@@ -119,11 +123,12 @@ 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 and allow registration by site visitors
+ // without administrator approval.
+ config('user.settings')
+ ->set('verify_mail', FALSE)
+ ->set('register', USER_REGISTER_VISITORS)
+ ->save();
// Set up a user to check for duplicates.
$duplicate_user = $this->drupalCreateUser();
@@ -144,11 +149,13 @@ 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);
+ $config = config('user.settings');
+ // Don't require e-mail verification and allow registration by site visitors
+ // without administrator approval.
+ $config
+ ->set('verify_mail', FALSE)
+ ->set('register', USER_REGISTER_VISITORS)
+ ->save();
// Set the default timezone to Brussels.
variable_set('configurable_timezones', 1);
@@ -174,7 +181,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 d218b5f..9ed88ca 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php
@@ -33,7 +33,7 @@ class UserSignatureTest extends WebTestBase {
parent::setUp();
// 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 fac9723..2268ae1 100644
--- a/core/modules/user/user.admin.inc
+++ b/core/modules/user/user.admin.inc
@@ -258,9 +258,10 @@ function user_admin_account_validate($form, &$form_state) {
* Form builder; Configure user settings for this site.
*
* @ingroup forms
- * @see system_settings_form()
+ * @see user_admin_settings_submit()
*/
-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',
@@ -269,7 +270,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,
);
@@ -290,7 +291,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.'),
);
@@ -303,7 +304,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'),
@@ -313,7 +314,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('verify_mail'),
'#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');
@@ -343,7 +344,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)) {
@@ -433,7 +434,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',
);
@@ -454,7 +455,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',
);
@@ -475,7 +476,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',
);
@@ -525,7 +526,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('notify.status_activated'),
);
$form['email_activated']['settings'] = array(
'#type' => 'container',
@@ -560,7 +561,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('notify.status_blocked'),
);
$form['email_blocked']['settings'] = array(
'#type' => 'container',
@@ -616,7 +617,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('notify.status_canceled'),
);
$form['email_canceled']['settings'] = array(
'#type' => 'container',
@@ -640,7 +641,23 @@ function user_admin_settings() {
'#rows' => 3,
);
- return system_settings_form($form);
+ return system_config_form($form, $form_state);
+}
+
+/**
+ * Form submission handler for user_admin_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('verify_mail', $form_state['values']['user_email_verification'])
+ ->set('signatures', $form_state['values']['user_signatures'])
+ ->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'])
+ ->save();
}
/**
diff --git a/core/modules/user/user.install b/core/modules/user/user.install
index abb985b..9202145 100644
--- a/core/modules/user/user.install
+++ b/core/modules/user/user.install
@@ -475,5 +475,36 @@ function user_update_8003() {
}
/**
+ * Moves account settings from variable to config.
+ *
+ * @ingroup config_upgrade
+ */
+function user_update_8004() {
+ 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' => 'notify.status_activated',
+ 'user_mail_status_blocked_notify' => 'notify.status_blocked',
+ 'user_mail_status_cancelled_notify' => 'notify.status_cancelled',
+ 'user_email_verification' => 'verify_mail',
+ ));
+
+ // Convert the user.settings:register numeric value to text value.
+ $map = array(
+ '0' => 'admin_only',
+ '1' => 'visitors',
+ '2' => 'visitors_admin_approval',
+ );
+ $config = config('user.settings');
+ $user_register = $config->get('register');
+
+ if (is_numeric($user_register) && isset($map[$user_register])) {
+ $config->set('register', $map[$user_register])->save();
+ }
+}
+
+/**
* @} End of "addtogroup updates-7.x-to-8.x".
*/
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 44cb266..730448c 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -23,18 +23,18 @@ const EMAIL_MAX_LENGTH = 254;
/**
* Only administrators can create user accounts.
*/
-const USER_REGISTER_ADMINISTRATORS_ONLY = 0;
+const USER_REGISTER_ADMINISTRATORS_ONLY = 'admin_only';
/**
* Visitors can create their own accounts.
*/
-const USER_REGISTER_VISITORS = 1;
+const USER_REGISTER_VISITORS = 'visitors';
/**
* Visitors can create accounts, but they don't become active without
* administrative approval.
*/
-const USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL = 2;
+const USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL = 'visitors_admin_approval';
/**
* Implement hook_help().
@@ -576,7 +576,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'),
@@ -754,7 +754,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') != USER_REGISTER_ADMINISTRATORS_ONLY) {
$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.'))));
@@ -917,7 +917,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;
}
@@ -1120,7 +1120,7 @@ function user_register() {
}
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') != USER_REGISTER_ADMINISTRATORS_ONLY);
}
/**
@@ -2789,7 +2789,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('notify.status_canceled'),
'#description' => t('When enabled, the user will receive an e-mail notification after the account has been cancelled.'),
);
@@ -2918,7 +2918,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
@@ -3008,9 +3008,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('notify.' . $op);
+ 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);
@@ -3203,7 +3202,7 @@ function user_form_field_ui_field_edit_form_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 e1f7088..d26ca6d 100644
--- a/core/modules/user/user.pages.inc
+++ b/core/modules/user/user.pages.inc
@@ -251,7 +251,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('notify.status_canceled');
$form['user_cancel_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
@@ -340,6 +340,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.'),
@@ -350,8 +351,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.'),
@@ -393,7 +394,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('notify.status_canceled'),
);
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/core/profiles/minimal/minimal.install b/core/profiles/minimal/minimal.install
index 2c4cee1..224e54d 100644
--- a/core/profiles/minimal/minimal.install
+++ b/core/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/core/profiles/standard/standard.install b/core/profiles/standard/standard.install
index 27faf10..32221b3 100644
--- a/core/profiles/standard/standard.install
+++ b/core/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/core/profiles/testing/testing.install b/core/profiles/testing/testing.install
index bdd6154..7ab1118 100644
--- a/core/profiles/testing/testing.install
+++ b/core/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.