Magento: Как проверить, вошел ли админ в контроллер модуля? - PullRequest
11 голосов
/ 27 июля 2010

Я создаю модуль Magento. В контроллере я хочу проверить, вошел ли администратор в систему или нет. Таким образом, контроллер будет доступен только при наличии авторизованного администратора.

Я пытаюсь использовать этот код на моем контроллере.

Mage::getSingleton('core/session', array('name' => 'adminhtml')); 
$session = Mage::getSingleton('admin/session');

// Use the 'admin/session' object to check loggedIn status
if ( $session->isLoggedIn() ) {
   echo "logged in";
} else {
   echo "not logged in";
}

но я всегда получаю сообщение "не вошел в систему", даже если я уже вошел в систему администратора magento.

Может кто-нибудь помочь мне решить эту проблему? Любая помощь будет высоко ценится. Спасибо

Ответы [ 5 ]

19 голосов
/ 27 июля 2010

Это действительно странно. Я использую почти один и тот же код, и он работает постоянно:

//get the admin session
Mage::getSingleton('core/session', array('name'=>'adminhtml'));

//verify if the user is logged in to the backend
if(Mage::getSingleton('admin/session')->isLoggedIn()){
  //do stuff
}
else
{
  echo "go away bad boy";
}

Вы пробовали var_dumping переменную $ session? Может быть, это поможет вам встать на правильный путь ...

2 голосов
/ 07 апреля 2011

Убедитесь, что adminhtml-контроллер вашего модуля расширяет Mage_Adminhtml_Controller_Action.Вы не можете проверить, вошел ли администратор с внешнего контроллера.

0 голосов
/ 22 октября 2014

есть новый модуль magento, написанный Аланом Штормом: https://github.com/astorm/Magento_CrossAreaSessions

0 голосов
/ 11 апреля 2014

Как сказал Дэвид Тэй, вы должны расширить свой контроллер с Mage_Adminhtml_Controller_Action.В любом случае, самый короткий способ проверить, вошел ли администратор, это вызвать этот вспомогательный метод:

Mage::helper('adminhtml')->getCurrentUserId();
0 голосов
/ 01 августа 2012

$user = Mage::getSingleton('admin/session');

if($user->getUser()->getUserId()) {
   // admin logged
}
else {
   // not admin logged
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...