2015-08-09 50 views
0

在Prestashop 1.5中,我需要授予在模塊前端控制器中僅對員工執行一些ajax動作的權限。在模塊前端控制器ajax動作中驗證員工

Context::getContext()->employee 

僅在管理環境中可用,因此在模塊前端控制器中始終爲空。

我應該如何在模塊前端控制器環境中驗證員工?

回答

3

在的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'); 
0

嘗試:

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

正如我所說的,員工僅在管理員上下文(admincontroller或moduleadmincontroller),並且我在模塊前端控制器中。所以員工總是空的。 – assistbss

+0

是的。對不起,我編輯我的回覆。 – ethercreation

相關問題