我正在为PrestaShop开发一个模块,我需要从后台注销用户(雇员)。我在后端代码中看到他们使用
self.edgesForExtendedLayout = .top
但是我不能在我的模块范围内使用它,因为我需要从后台登录表单中截取凭据才能创建到员工的正确链接,但是我找不到方法。有什么方法可以获取这些凭据或以其他方式注销用户?
P.S。在用户登录之前拦截用户凭据,并阻止他登录直到特定时间点也可以满足我的需求,但这听起来要复杂得多,而且我也找不到解决方法。
答案 0 :(得分:0)
此代码足以断开员工联系:
$this->context->employee->logout();
但是,正如您在上下文中看到的那样,这意味着应从您要断开连接的员工处执行代码,因为会话已保存在员工的本地cookie中,换句话说,您无法断开连接远程访问员工,但是您可以使用在每个浏览页面中调用的钩子displayBackOfficeHeader,然后断开员工联系,例如:
public function hookDisplayBackOfficeHeader()
{
// My validation to disconnect the employee I want
if ($id_employee == 1) {
$this->context->employee->logout();
Tools::redirectAdmin('index.php');
}
}