Назначить роль по умолчанию при регистрации нового пользователя - drupal 8 - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь назначить роль по умолчанию для всех новых зарегистрированных пользователей. но я получил

Error: Call to a member function addRole() on array in my_module_user_insert()

мой код

function my_module_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id)
{
if ($form_id == 'user_register_form') {
unset($form['account']['mail']['#description']);
unset($form['account']['name']['#description']);
unset($form['account']['pass']['#description']);
$form['actions']['submit']['#submit'][] = 'my_module_user_insert';
}  
}
function my_module_user_insert($entity) {
  $entity->addRole('newcompanies'); 
  $entity->save();
}

Я пытаюсь использовать роль администратора на странице настроек учетной записи [admin / config / people / accounts], но не работает. есть идеи?

1 Ответ

0 голосов
/ 18 февраля 2020

Попробуйте это в своем пользовательском модуле:

use Drupal\user\UserInterface;

function my_module_user_insert(UserInterface $user) {
    $rid = array_search('newcompanies', user_roles());

    $user->addRole($rid);
    $user->save();
}

Объяснение : вам нужно подключиться к hook_ENTITY_TYPE_insert, а затем добавить желаемую роль для создаваемого пользователя. Обратите внимание, что вы должны добавить идентификатор роли вместо имени роли!

Я не пробовал, просто написал по памяти, надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...