在模块前端控制器 ajax 操作中验证员工

Authenticate employee in module front controller ajax actions

在 Prestashop 1.5 中,我需要仅向员工授予在模块前端控制器中执行某些 ajax 操作的权限。

Context::getContext()->employee

仅在管理上下文中可用,因此在模块前端控制器中始终为空。

我应该如何在模块前端控制器上下文中对员工进行身份验证?

尝试:

$context = Context::getContext();
$context->employee->id = 1;

在以前的 PrestaShop 版本中,您可以使用 Cookie->isLoggedBack(),但现在已弃用此方法(移至仅在管理面板中可用的 Employee->isLoggedBack())。

检查员工是否登录管理面板的正确方法是:

$cookie = new Cookie('psAdmin', '', (int)Configuration::get('PS_COOKIE_LIFETIME_BO'));
$employee = new Employee((int)$cookie->id_employee);

if (Validate::isLoadedObject($employee) && $employee->checkPassword((int)$cookie->id_employee, $cookie->passwd)
&& (!isset($cookie->remote_addr) || $cookie->remote_addr == ip2long(Tools::getRemoteAddr()) || !Configuration::get('PS_COOKIE_CHECKIP')))
        die('Logged In, Your code here');
    else
        die('User is not logged in');