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
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:
That is really strange. I use almost exactly the same code and it works all the time:
Did you try var_dumping the $session variable? Maybe it will help you get on the right track...
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.
there is a new magento module, written by alan storm: https://github.com/astorm/Magento_CrossAreaSessions
$user = Mage::getSingleton('admin/session');