新用户注册时分配默认角色 - drupal 8
Posted
技术标签:
【中文标题】新用户注册时分配默认角色 - drupal 8【英文标题】:Assign default role when new user register - drupal 8 【发布时间】:2020-05-30 19:33:58 【问题描述】:我正在尝试为所有新注册用户分配默认角色。但我得到了
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】:在您的自定义模块中试试这个:
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
,然后为正在创建的用户添加所需的角色。请注意,您必须添加角色 id 而不是角色名称!
没试过,凭记忆写的,希望对你有帮助!
【讨论】:
以上是关于新用户注册时分配默认角色 - drupal 8的主要内容,如果未能解决你的问题,请参考以下文章