在Prestashop 1.5中,我需要授予在模塊前端控制器中僅對員工執行一些ajax動作的權限。在模塊前端控制器ajax動作中驗證員工
Context::getContext()->employee
僅在管理環境中可用,因此在模塊前端控制器中始終爲空。
我應該如何在模塊前端控制器環境中驗證員工?
在Prestashop 1.5中,我需要授予在模塊前端控制器中僅對員工執行一些ajax動作的權限。在模塊前端控制器ajax動作中驗證員工
Context::getContext()->employee
僅在管理環境中可用,因此在模塊前端控制器中始終爲空。
我應該如何在模塊前端控制器環境中驗證員工?
在的PrestaShop以前的版本,你可以使用Cookie-> isLoggedBack(),但是這種方法現在已經過時(移動到員工 - > 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');
嘗試:
$context = Context::getContext();
$context->employee->id = 1;
正如我所說的,員工僅在管理員上下文(admincontroller或moduleadmincontroller),並且我在模塊前端控制器中。所以員工總是空的。 – assistbss
是的。對不起,我編輯我的回覆。 – ethercreation