如何从Prestashop 1.7中的后台注销管理员用户(员工)?

时间:2018-11-15 07:54:51

标签: php prestashop logout prestashop-1.7 backoffice

我正在为PrestaShop开发一个模块,我需要从后台注销用户(雇员)。我在后端代码中看到他们使用

self.edgesForExtendedLayout = .top

但是我不能在我的模块范围内使用它,因为我需要从后台登录表单中截取凭据才能创建到员工的正确链接,但是我找不到方法。有什么方法可以获取这些凭据或以其他方式注销用户?

P.S。在用户登录之前拦截用户凭据,并阻止他登录直到特定时间点也可以满足我的需求,但这听起来要复杂得多,而且我也找不到解决方法。

1 个答案:

答案 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');
    }
}