在Prestashop 1.5中,我需要授予在模块前端控制器中仅对员工执行某些ajax操作的权限。
Context::getContext()->employee
仅在管理上下文中可用,因此在模块前端控制器中始终为空。
我应该如何在模块前端控制器环境中对员工进行认证?
答案 0 :(得分:4)
In the previous versions of PrestaShop you could use Cookie->isLoggedBack() however this method is now deprecated (moved to Employee->isLoggedBack() which works only in the Admin Panel).
A proper way of checking if an employee is logged to the Admin Panel whether you are in a front-end or back-end controller can now be:
$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');
答案 1 :(得分:-1)
尝试:
$context = Context::getContext();
$context->employee->id = 1;