php - 如何更新 Drupal 8 hook_user_login 中的 $account 对象
问题描述
我正在尝试使用 hook_user_login 来更新 $account 以便删除其中一个角色。$account 是一个受保护的对象,它允许我获取($account->getRoles();
)角色数组,但不允许我设置它。任何人都可以建议在处理用户登录请求之前是否可以编辑$account
角色?
function restrict_by_ip_user_login($account) {
//Edit account roles here before proceeding
$login_firewall = \Drupal::service('restrict_by_ip.login_firewall');
$login_firewall->execute($account);
}
解决方案
您可以使用removeRole
方法,类似以下代码段的内容可以帮助您
function restrict_by_ip_user_login($account) {
$user = user_load_by_name($account->name);
if ($user) {
$user-> removeRole('MACHINE_NAME_OF_ROLE');
$user->save();
}
$login_firewall = \Drupal::service('restrict_by_ip.login_firewall');
$login_firewall->execute($account);
}
推荐阅读
- c# - 在 C# 和 Unity 中将 JSON 字符串反序列化为对象
- r - R Data.Table拆分数字列并执行操作
- visual-studio-code - 在 Chromebook 上找不到 VSCode 远程 SSH 命令
- c++ - 为什么 NULL 不能作为 std::thread 执行函数的 void* 参数的参数?
- datetimepicker - 12 小时格式的日期时间选择器 - Umbraco 管理面板
- android - 如何从除 main.dart 之外的其他文件中获取参考
- xml - XPath - 动态选择和查找元素的值
- sql - 在 Sequelize 后端查询中查找匹配对象
- python - 有序数组中的Python选择,一个接一个地选择值
- c# - 无法导入“System.Web.Helpers”