【问题标题】:How do i force Joomla to update the user session我如何强制 Joomla 更新用户会话
【发布时间】:2014-03-27 09:12:21
【问题描述】:

我正在通过 PayPal 回调更新给定用户的 ACL。我通过直接更新 #__user_usergroup_map 表来做到这一点。现在我需要使用新信息更新用户会话,而无需注销并再次登录。

question 的回答中,我尝试了以下方法:

$user = JFactory::getUser();
$session = JFactory::getSession();
$session->set('user', new JUser($user->id));

但这对我不起作用,从 JUser 看来,JUser 似乎已被弃用。

谁能提示我正确的方向?

【问题讨论】:

  • 您想在会话中更新哪些信息?
  • @Lodder 我正在向用户添加一个额外的用户组。

标签: php joomla acl


【解决方案1】:

我意识到其他question 的答案确实有效。

$user = JFactory::getUser();
$session = JFactory::getSession();
$session->set('user', new JUser($user->id));

在我的情况下它不会更新用户会话的原因是此代码是在来自 PayPal 的回调中调用的,它不持有用户会话。

【讨论】:

  • 这个功能应该集成在一些订阅组件中,因为它非常方便。感谢分享。不要忘记为 Stackexchange 提交 Joomla Proposal ;)
  • 这似乎对我有用。会话中包含新组。然而,它似乎没有做的是刷新主菜单。在您注销并重新登录或再次运行该代码之前,新组访问权限为您提供的项目不会出现。
猜你喜欢
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
  • 1970-01-01
  • 2011-10-31
  • 2015-09-12
  • 1970-01-01
相关资源
最近更新 更多