diff --cc core/modules/user/src/AccountForm.php index 15df478,0f2e350..0000000 --- a/core/modules/user/src/AccountForm.php +++ b/core/modules/user/src/AccountForm.php @@@ -324,23 -328,33 +324,34 @@@ abstract class AccountForm extends Cont parent::validate($form, $form_state); $account = $this->entity; - $mail = $form_state['values']['mail']; ++ $mail = $form_state->getValue('mail'); + // Validate new or changing username. - if (isset($form_state['values']['name'])) { - $name = $form_state['values']['name']; + if ($form_state->hasValue('name')) { - if ($error = user_validate_name($form_state->getValue('name'))) { ++ $name = $form_state->getValue('name'); + + if ($error = user_validate_name($name)) { - $this->setFormError('name', $form_state, $error); + $form_state->setErrorByName('name', $error); } // Cast the user ID as an integer. It might have been set to NULL, which // could lead to unexpected results. else { $name_taken = (bool) $this->entityQuery->get('user') ->condition('uid', (int) $account->id(), '<>') - ->condition('name', $form_state->getValue('name')) + ->condition('name', $name) ++ ->range(0, 1) ->count() ->execute(); if ($name_taken) { - $form_state->setErrorByName('name', $this->t('The name %name is already taken.', array('%name' => $form_state->getValue('name')))); - $this->setFormError('name', $form_state, $this->t('The name %name is already taken.', array('%name' => $name))); ++ $form_state->setErrorByName('name', $this->t('The name %name is already taken.', array('%name' => $name))); + } + + // Check whether the user name provided is an email address, if so, make + // sure it matches the mail value. + if (\Drupal::config('user.settings')->get('verify_email_match') && (filter_var($name, FILTER_VALIDATE_EMAIL) && ($name !== $mail))) { + $this->setFormError('name', $form_state, $this->t('You have provided an e-mail address as a username, but this does not match your e-mail address.')); } } } diff --cc core/modules/user/src/AccountSettingsForm.php index 8fc998b,3daa69f..0000000 --- a/core/modules/user/src/AccountSettingsForm.php +++ b/core/modules/user/src/AccountSettingsForm.php @@@ -413,37 -416,38 +418,38 @@@ class AccountSettingsForm extends Confi parent::submitForm($form, $form_state); $this->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('password_strength', $form_state['values']['user_password_strength']) - ->set('verify_mail', $form_state['values']['user_email_verification']) - ->set('verify_email_match', $form_state['values']['user_email_match_verification']) - ->set('signatures', $form_state['values']['user_signatures']) - ->set('cancel_method', $form_state['values']['user_cancel_method']) - ->set('notify.status_activated', $form_state['values']['user_mail_status_activated_notify']) - ->set('notify.status_blocked', $form_state['values']['user_mail_status_blocked_notify']) - ->set('notify.status_canceled', $form_state['values']['user_mail_status_canceled_notify']) + ->set('anonymous', $form_state->getValue('anonymous')) + ->set('admin_role', $form_state->getValue('user_admin_role')) + ->set('register', $form_state->getValue('user_register')) + ->set('password_strength', $form_state->getValue('user_password_strength')) + ->set('verify_mail', $form_state->getValue('user_email_verification')) ++ ->set('verify_email_match', $form_state->getValue('user_email_match_verification')) + ->set('signatures', $form_state->getValue('user_signatures')) + ->set('cancel_method', $form_state->getValue('user_cancel_method')) + ->set('notify.status_activated', $form_state->getValue('user_mail_status_activated_notify')) + ->set('notify.status_blocked', $form_state->getValue('user_mail_status_blocked_notify')) + ->set('notify.status_canceled', $form_state->getValue('user_mail_status_canceled_notify')) ->save(); $this->config('user.mail') - ->set('cancel_confirm.body', $form_state['values']['user_mail_cancel_confirm_body']) - ->set('cancel_confirm.subject', $form_state['values']['user_mail_cancel_confirm_subject']) - ->set('password_reset.body', $form_state['values']['user_mail_password_reset_body']) - ->set('password_reset.subject', $form_state['values']['user_mail_password_reset_subject']) - ->set('register_admin_created.body', $form_state['values']['user_mail_register_admin_created_body']) - ->set('register_admin_created.subject', $form_state['values']['user_mail_register_admin_created_subject']) - ->set('register_no_approval_required.body', $form_state['values']['user_mail_register_no_approval_required_body']) - ->set('register_no_approval_required.subject', $form_state['values']['user_mail_register_no_approval_required_subject']) - ->set('register_pending_approval.body', $form_state['values']['user_mail_register_pending_approval_body']) - ->set('register_pending_approval.subject', $form_state['values']['user_mail_register_pending_approval_subject']) - ->set('status_activated.body', $form_state['values']['user_mail_status_activated_body']) - ->set('status_activated.subject', $form_state['values']['user_mail_status_activated_subject']) - ->set('status_blocked.body', $form_state['values']['user_mail_status_blocked_body']) - ->set('status_blocked.subject', $form_state['values']['user_mail_status_blocked_subject']) - ->set('status_canceled.body', $form_state['values']['user_mail_status_canceled_body']) - ->set('status_canceled.subject', $form_state['values']['user_mail_status_canceled_subject']) + ->set('cancel_confirm.body', $form_state->getValue('user_mail_cancel_confirm_body')) + ->set('cancel_confirm.subject', $form_state->getValue('user_mail_cancel_confirm_subject')) + ->set('password_reset.body', $form_state->getValue('user_mail_password_reset_body')) + ->set('password_reset.subject', $form_state->getValue('user_mail_password_reset_subject')) + ->set('register_admin_created.body', $form_state->getValue('user_mail_register_admin_created_body')) + ->set('register_admin_created.subject', $form_state->getValue('user_mail_register_admin_created_subject')) + ->set('register_no_approval_required.body', $form_state->getValue('user_mail_register_no_approval_required_body')) + ->set('register_no_approval_required.subject', $form_state->getValue('user_mail_register_no_approval_required_subject')) + ->set('register_pending_approval.body', $form_state->getValue('user_mail_register_pending_approval_body')) + ->set('register_pending_approval.subject', $form_state->getValue('user_mail_register_pending_approval_subject')) + ->set('status_activated.body', $form_state->getValue('user_mail_status_activated_body')) + ->set('status_activated.subject', $form_state->getValue('user_mail_status_activated_subject')) + ->set('status_blocked.body', $form_state->getValue('user_mail_status_blocked_body')) + ->set('status_blocked.subject', $form_state->getValue('user_mail_status_blocked_subject')) + ->set('status_canceled.body', $form_state->getValue('user_mail_status_canceled_body')) + ->set('status_canceled.subject', $form_state->getValue('user_mail_status_canceled_subject')) ->save(); $this->config('system.site') - ->set('mail_notification', $form_state['values']['mail_notification_address']) + ->set('mail_notification', $form_state->getValue('mail_notification_address')) ->save(); }