当我们的一个“注册”用户下订单时,我们有一个插件可以成功地将他们添加到另一个名为“客户”的用户组。这在使用JUserHelper::addUserToGroup()
.
问题是即使用户记录已正确更新,但他们已经登录,因此他们被迫注销并重新登录以获得所需的必要 ACL。
我已经搜索了所有 jUser 代码和文档,但找不到更改由$user =& JFactory::getUser();
.
我希望答案对于比我更了解 Joomla MVC 的人来说可能是显而易见的,但我的脑海里正沉浸在我读过的所有代码中,试图找到一种方法来实现这一点。
更新:
Lodder 下面的回答在技术上有效,但是虽然“用户组”实际上正在更新,但 AuthGroups 和 AuthLevels 却没有。运行我的代码后,$user 对象确实显示了其中的组,但在对象的更下方,
[_authGroups:protected] => Array
(
[0] => 1
[1] => 2
)
[_authLevels:protected] => Array
(
[0] => 1
[1] => 1
[2] => 2
)
在当前会话中似乎无法更改它,因为它都受到保护,并且它更新的唯一位置是 user.php at $identities = $this->getAuthorisedGroups();
,它只在第一次遇到它时执行。