Как запретить кириллические логины при регистрации?

Главные вкладки

Аватар пользователя alexboy alexboy 5 февраля 2016 в 8:05

Чтобы запретить кириллические логины на Drupal7 надо было создать правила в "правилах доступа". На Drupal8 я перерыл всю панель управления и не нашёл ничего подобного. Подскажите как запретить кириллические логины при регистрации на Drupal8 ?

Лучший ответ

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 6 февраля 2016 в 2:37
1

alexboy wrote:

на Drupal7 надо было создать правила в "правилах доступа"

Ты об этом? Что-то попробовал в 7-ке, но страницы admin/access/rules/add нет. Поэтому хз. как-там было, и как теперь. Могу модуль подкинуть


<?php
/**
* @file
* Username ruler module.
*/

use Drupal\Core\Form\FormStateInterface;

/**
* Implements hook_form_alter()
*/
function username_ruler_form_alter(&$formFormStateInterface $form_state$form_id) {

  if(

in_array($form_id, ['user_form''user_register_form'])){
    
$form['#validate'][] = 'username_ruler_user_validate';
    
$form['account']['name']['#description'] .= t(' Forbid сyrillic characters');
  }
}

function 

username_ruler_user_validate(&$formFormStateInterface $form_state){
      
  
$name $form_state->getValue('name');
  if (
preg_match("/[а-я]+/ui"$name)) {
    
$form_state->setErrorByName('name't('Username cannot contain cyrillic characters, sorry'));
  }
}
?>

Комментарии

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 6 февраля 2016 в 2:37
1

alexboy wrote:

на Drupal7 надо было создать правила в "правилах доступа"

Ты об этом? Что-то попробовал в 7-ке, но страницы admin/access/rules/add нет. Поэтому хз. как-там было, и как теперь. Могу модуль подкинуть


<?php
/**
* @file
* Username ruler module.
*/

use Drupal\Core\Form\FormStateInterface;

/**
* Implements hook_form_alter()
*/
function username_ruler_form_alter(&$formFormStateInterface $form_state$form_id) {

  if(

in_array($form_id, ['user_form''user_register_form'])){
    
$form['#validate'][] = 'username_ruler_user_validate';
    
$form['account']['name']['#description'] .= t(' Forbid сyrillic characters');
  }
}

function 

username_ruler_user_validate(&$formFormStateInterface $form_state){
      
  
$name $form_state->getValue('name');
  if (
preg_match("/[а-я]+/ui"$name)) {
    
$form_state->setErrorByName('name't('Username cannot contain cyrillic characters, sorry'));
  }
}
?>