如何将登录用户添加到Joomla 2.5用户组?

时间:2012-11-16 15:29:13

标签: joomla joomla2.5

当我们的一个“已注册”用户下订单时,我们有一个插件可以成功地将它们添加到名为“客户”的另一个用户组。这在使用JUserHelper::addUserToGroup()的事物流中非常有效。

问题在于即使用户记录IS已正确更新,它们也已经登录,因此他们被迫退出并重新登录以获得所需的必要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
            )

似乎没有办法在当前会话中更改它,因为它全部受到保护,并且它更新的唯一位置是$identities = $this->getAuthorisedGroups();的user.php,它仅在第一次遇到时执行。< / p>

1 个答案:

答案 0 :(得分:0)

我发现了这一点,但我不能100%确定它是否适用于您的情况。最好试一试:

$user = JFactory::getUser();
if ($user->id == $user['id']){
   $session = JFactory::getSession();
   $session->set('user', new JUser($user->id));
}

众所周知,它适用于少数人。

让我知道它是否有效,如果没有,我会看到我能找到的其他内容。