diff -u b/core/modules/comment/comment.module b/core/modules/comment/comment.module
--- b/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -2212,7 +2212,7 @@
$destination = array('destination' => "node/$node->nid#comment-form");
}
- if (config('user.settings')->get('register')) {
+ 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 -u b/core/modules/comment/lib/Drupal/comment/Tests/CommentInterfaceTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentInterfaceTest.php
--- b/core/modules/comment/lib/Drupal/comment/Tests/CommentInterfaceTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentInterfaceTest.php
@@ -648,7 +648,7 @@
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 {
reverted:
--- b/core/modules/contact/config/contact.settings.yml
+++ /dev/null
@@ -1 +0,0 @@
-user_contact_default_enabled: '1'
reverted:
--- b/core/modules/contact/contact.install
+++ a/core/modules/contact/contact.install
@@ -87,17 +87,7 @@
* 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',
- ));
-}
reverted:
--- b/core/modules/contact/contact.module
+++ a/core/modules/contact/contact.module
@@ -234,7 +234,7 @@
* 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,16 +250,10 @@
'#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();
}
reverted:
--- b/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php
+++ a/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php
@@ -32,7 +32,7 @@
$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 @@
// 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();
reverted:
--- b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
+++ a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
@@ -39,7 +39,7 @@
// 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 -u b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
--- b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
+++ b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
@@ -29,7 +29,7 @@
* Test OpenID auto-registration with e-mail verification enabled.
*/
function testRegisterUserWithEmailVerification() {
- config('user.settings')->set('mail.verification', TRUE)->save();
+ config('user.settings')->set('mail_verification', TRUE)->save();
variable_get('configurable_timezones', 1);
variable_set('date_default_timezone', 'Europe/Brussels');
@@ -86,7 +86,7 @@
* Test OpenID auto-registration with e-mail verification disabled.
*/
function testRegisterUserWithoutEmailVerification() {
- config('user.settings')->set('mail.verification', FALSE)->save();
+ config('user.settings')->set('mail_verification', FALSE)->save();
variable_get('configurable_timezones', 1);
variable_set('date_default_timezone', 'Europe/Brussels');
@@ -218,7 +218,7 @@
* but no SREG.
*/
function testRegisterUserWithAXButNoSREG() {
- config('user.settings')->set('mail.verification', FALSE)->save();
+ 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 -u b/core/modules/openid/openid.module b/core/modules/openid/openid.module
--- b/core/modules/openid/openid.module
+++ b/core/modules/openid/openid.module
@@ -86,7 +86,7 @@
function openid_user_insert($account) {
if (!empty($account->openid_claimed_id)) {
// The user has registered after trying to log in via OpenID.
- if (config('user.settings')->get('mail.verification')) {
+ 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));
@@ -218,7 +218,7 @@
// If email verification is off, hide the password field and just fill
// with random password to avoid confusion.
- if (!config('user.settings')->get('mail.verification')) {
+ if (!config('user.settings')->get('mail_verification')) {
$form['account']['pass']['#type'] = 'hidden';
$form['account']['pass']['#value'] = user_password();
}
@@ -708,7 +708,7 @@
$account = user_external_load($identity);
if (isset($account->uid)) {
- if (!config('user.settings')->get('mail.verification') || $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 @@
// Let other modules act on OpenID login
module_invoke_all('openid_response', $response, $account);
}
- elseif (config('user.settings')->get('register')) {
+ 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 -u b/core/modules/user/config/user.settings.yml b/core/modules/user/config/user.settings.yml
--- b/core/modules/user/config/user.settings.yml
+++ b/core/modules/user/config/user.settings.yml
@@ -2,8 +2,8 @@
-admin_role: 0
+admin_role: ''
register: visitors
signatures: '0'
-mail:
- status_activated_notify: '1'
- status_blocked_notify: '0'
- status_cancelled_notify: '0'
- verification: '1'
+notify:
+ activated: '1'
+ blocked: '0'
+ cancelled: '0'
+mail_verification: '1'
diff -u b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
--- b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -25,7 +25,7 @@
function testRegistrationWithEmailVerification() {
$config = config('user.settings');
// Require e-mail verification.
- $config->set('mail.verification', TRUE)->save();
+ $config->set('mail_verification', TRUE)->save();
// Set registration to administrator only.
$config->set('register', USER_REGISTER_ADMINISTRATORS_ONLY)->save();
@@ -56,11 +56,13 @@
function testRegistrationWithoutEmailVerification() {
$config = config('user.settings');
- // Don't require e-mail verification.
- $config->set('mail.verification', FALSE)->save();
+ // Don't require e-mail verification and allow registration by site visitors
+ // without administrator approval.
+ $config
+ ->set('mail_verification', FALSE)
+ ->set('register', USER_REGISTER_VISITORS)
+ ->save();
- // Allow registration by site visitors without administrator approval.
- $config->set('register', USER_REGISTER_VISITORS)->save();
$edit = array();
$edit['name'] = $name = $this->randomName();
$edit['mail'] = $mail = $edit['name'] . '@example.com';
@@ -115,11 +117,10 @@
}
function testRegistrationEmailDuplicates() {
-
- // Don't require e-mail verification.
- // Then, allow registration by site visitors without administrator approval.
+ // Don't require e-mail verification and allow registration by site visitors
+ // without administrator approval.
config('user.settings')
- ->set('mail.verification', FALSE)
+ ->set('mail_verification', FALSE)
->set('register', USER_REGISTER_VISITORS)
->save();
@@ -142,12 +143,12 @@
}
function testRegistrationDefaultValues() {
- // Allow registration by site visitors without administrator approval.
- // Then, don't require e-mail verification.
$config = config('user.settings');
+ // Don't require e-mail verification and allow registration by site visitors
+ // without administrator approval.
$config
+ ->set('mail_verification', FALSE)
->set('register', USER_REGISTER_VISITORS)
- ->set('mail.verification', FALSE)
->save();
// Set the default timezone to Brussels.
diff -u b/core/modules/user/user.admin.inc b/core/modules/user/user.admin.inc
--- b/core/modules/user/user.admin.inc
+++ b/core/modules/user/user.admin.inc
@@ -257,7 +257,7 @@
* Form builder; Configure user settings for this site.
*
* @ingroup forms
- * @see system_config_form()
+ * @see user_admin_settings_submit()
*/
function user_admin_settings($form, &$form_state) {
$config = config('user.settings');
@@ -313,7 +313,7 @@
$form['registration_cancellation']['user_email_verification'] = array(
'#type' => 'checkbox',
'#title' => t('Require e-mail verification when a visitor creates an account.'),
- '#default_value' => $config->get('mail.verification'),
+ '#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');
@@ -525,7 +525,7 @@
$form['email_activated']['user_mail_status_activated_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is activated.'),
- '#default_value' => $config->get('mail.status_activated_notify'),
+ '#default_value' => $config->get('notify.status_activated'),
);
$form['email_activated']['settings'] = array(
'#type' => 'container',
@@ -560,7 +560,7 @@
$form['email_blocked']['user_mail_status_blocked_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is blocked.'),
- '#default_value' => $config->get('mail.status_blocked_notify'),
+ '#default_value' => $config->get('notify.status_blocked'),
);
$form['email_blocked']['settings'] = array(
'#type' => 'container',
@@ -616,7 +616,7 @@
$form['email_canceled']['user_mail_status_canceled_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
- '#default_value' => $config->get('mail.status_canceled_notify'),
+ '#default_value' => $config->get('notify.status_canceled'),
);
$form['email_canceled']['settings'] = array(
'#type' => 'container',
@@ -644,18 +644,18 @@
}
/**
- * Save account settings settings.
+ * Form submission handler for user_admin_settings().
*/
-function user_admin_settings_submit($form, $form_state) {
+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('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'])
+ ->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 -u b/core/modules/user/user.install b/core/modules/user/user.install
--- b/core/modules/user/user.install
+++ b/core/modules/user/user.install
@@ -452,11 +452,24 @@
'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',
+ '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' => 'mail_verification',
));
+
+ // 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();
+ }
}
/**
diff -u b/core/modules/user/user.module b/core/modules/user/user.module
--- b/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -22,18 +22,18 @@
/**
* 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().
@@ -788,7 +788,7 @@
$form['#validate'][] = 'user_validate_current_pass';
}
}
- elseif (!$config->get('mail.verification') || $admin) {
+ elseif (!$config->get('mail_verification') || $admin) {
$form['account']['pass'] = array(
'#type' => 'password_confirm',
'#size' => 25,
@@ -1059,7 +1059,7 @@
'#value' => t('Log in'),
);
$items = array();
- if (config('user.settings')->get('register')) {
+ 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.'))));
@@ -1420,7 +1420,7 @@
}
function user_register_access() {
- return user_is_anonymous() && config('user.settings')->get('register');
+ return user_is_anonymous() && (config('user.settings')->get('register') != USER_REGISTER_ADMINISTRATORS_ONLY);
}
/**
@@ -3081,7 +3081,7 @@
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
'#default_value' => FALSE,
- '#access' => config('user.settings')->get('mail.status_canceled_notify'),
+ '#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.'),
);
@@ -3300,7 +3300,7 @@
*/
function _user_mail_notify($op, $account, $language = NULL) {
// By default, we always notify except for canceled and blocked.
- $notify = config('user.settings')->get('mail.' . $op . '_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);
@@ -3568,7 +3568,7 @@
*/
function user_register_submit($form, &$form_state) {
$admin = $form_state['values']['administer_users'];
- $mail_verification = config('user.settings')->get('mail.verification');
+ $mail_verification = config('user.settings')->get('mail_verification');
if (!$mail_verification || $admin) {
$pass = $form_state['values']['pass'];
diff -u b/core/modules/user/user.pages.inc b/core/modules/user/user.pages.inc
--- b/core/modules/user/user.pages.inc
+++ b/core/modules/user/user.pages.inc
@@ -330,7 +330,7 @@
'#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 = config('user.settings')->get('mail.status_canceled_notify');
+ $default_notify = config('user.settings')->get('notify.status_canceled');
$form['user_cancel_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
@@ -473,7 +473,7 @@
// 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'] : config('user.settings')->get('mail.status_canceled_notify'),
+ '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