Magento : How to check if admin is logged in within a module controller?

南楼画角 提交于 2019-12-18 19:27:08

问题


I'm creating a Magento Module. Within the controller, I want to check if an admin is logged in or not. So the controller only will be accessible if there is a logged in admin.

I'm trying to use this code on my controller.

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";
}

but I always get "not logged in", even if I'm already logged in to the magento admin.

Can anybody help me to resolve this issue?? any help will be much appreciated. Thanks


回答1:


That is really strange. I use almost exactly the same code and it works all the time:

//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";
}

Did you try var_dumping the $session variable? Maybe it will help you get on the right track...




回答2:


Make sure that your module's adminhtml controller is extending Mage_Adminhtml_Controller_Action. You can't check if an admin is logged in from a front end controller.




回答3:


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

if($user->getUser()->getUserId()) {
   // admin logged
}
else {
   // not admin logged
}



回答4:


As David Tay said, you should extend your controller from Mage_Adminhtml_Controller_Action.
Anyway, the shortest way to check if admin is logged in is to call this helper method:

Mage::helper('adminhtml')->getCurrentUserId();



回答5:


there is a new magento module, written by alan storm: https://github.com/astorm/Magento_CrossAreaSessions



来源:https://stackoverflow.com/questions/3342165/magento-how-to-check-if-admin-is-logged-in-within-a-module-controller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!