Как разрешить пользователю вход и по логину и по почте?

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Форумы: 
Чт, 18/05/2017 - 17:49

Собственно,ведь вопрос в заголовке? Как разрешить и логин вводить, и почту при входе на сайт? Или только почту?

0 Спасибо

Комментарии

Аватар пользователя Mihail.space
3 months 11 часов назад Mihail.space #

.

0 Спасибо
Аватар пользователя mozh
3 months 9 часов назад mozh #

модуль LoginToboggan

1 Спасибо
Аватар пользователя pingvin156
3 months 8 часов назад pingvin156 #

Он только для Drupal7..

0 Спасибо
Аватар пользователя pingvin156
2 months 4 недели назад pingvin156 #

Вот еще одно решение нашел. Добавить в свой модуль в файл MODULE.module. Мб кто не хочет модули подключать:

<?php/**
 * Implements hook_form_alter().
 */
function MODULE_form_user_login_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state) {
    // Allow login with email.
    array_unshift($form['#validate'], 'MODULE_user_login_form_validate');
    
    // Change the field label.
    $form['name']['#title'] = new \Drupal\Core\StringTranslation\TranslatableMarkup('Email or Username');
}

/**
 * Callback to check for a valid email for login.
 */
function MODULE_user_login_form_validate(array &$form, \Drupal\Core\Form\FormStateInterface $form_state) {
    if (!$form_state->isValueEmpty('name') && \Drupal::service('email.validator')->isValid($form_state->getValue('name'))) {
        // Try to find a user name for this email.
        if ($user = user_load_by_mail($form_state->getValue('name'))) {
            $form_state->setValue('name', $user->getUsername());
        }
    }
}?>

0 Спасибо