Now after admin login then you can get admin session id by front-end session in $_SESSION['admin'], and you can use session_id($_SESSION['admin'][0]) switch session details and continue.
This code need front-end session id already created, so must add one iframe (src=frontend.anypage) to backend/auth/login page.
condition:Current store is admin .Check by code: if Mage::app()->getStore()->isAdmin()
Config.xml code:
<global>
...
<models>
<magento85915>
<class>StackOverflow_Magento85915_Model</class>
</magento85915>
</models>
<events>
<controller_action_predispatch> <!-- identifier of the event we want to catch -->
<observers>
<controller_action_predispatch_handler> <!-- identifier of the event handler -->
<type>model</type> <!-- class method call type; valid are model, object and singleton -->
<class>magento85915/observer</class> <!-- observers class alias -->
<method>adminRedirection</method> <!-- observer's method to be called -->
</controller_action_predispatch_handler>
</observers>
</controller_action_predispatch>
</events>
</global>
observer code:
<?php
class StackOverflow_Magento85915_Model_Observer
{
public function adminRedirection(Varien_Event_Observer $observer)
{
$controller_action= $observer->getEvent()->getControllerAction();
$request=$controller_action->getRequest();
// redirection fire when current store is not aadmin
if (!Mage::app()->getStore()->isAdmin()):
// Get admin log page url
$url= Mage::helper('adminhtml')->getUrl('adminhtml/index/login');
/* forcefull redirection to admin login page */
Mage::app()->getFrontController()->getResponse()
->setRedirect($url)
->sendResponse();
exit;
endif;
return true;
}
}
Best Answer
My source below may some helpful.
events.xml
Then create the observer.
Now after admin login then you can get admin session id by front-end session in
$_SESSION['admin']
, and you can usesession_id($_SESSION['admin'][0])
switch session details and continue.This code need front-end session id already created, so must add one iframe
(src=frontend.anypage)
tobackend/auth/login
page.