Magento: Prüfe Admin Session/Login im Frontend
Hier eine mögliche Lösung in einem Model, FrontendController oder Helper zu überprüfen ob der aktuelle Nutzer/Gast (muss nicht eingeloggt sein) eine gültige Backend/Admin-Session besitzt. Alle Varianten, welche bei StackOverflow zu finden waren, funktionierten NICHT mit Magento 1.7. Wichtig, es geht hier um die Verwendung in einem FrontendController und nicht ein Adminhtml Controller. Außerdem ist diese Variante in jedem Model oder Helper einsetzbar. Diese Lösung funktioniert nur, wenn die Session Files im Dateisystem gespeichert sind.
Prüfe ob adminhtml im Cookie gesetzt ist. Ist dies der Fall, kann mit dem einlesen der Sessiondatei begonnen werden.
//check if adminhtml cookie is set
if(array_key_exists('adminhtml', $_COOKIE)){ [...] }
Sessiondatei einlesen:
//get session path and add dir seperator and content field of cookie as data name with magento "sess_" prefix
$sessionFilePath = Mage::getBaseDir('session').DS.'sess_'.$_COOKIE['adminhtml'];
//write content of file in var
$sessionFile = file_get_contents($sessionFilePath);
Jetzt kommt der interessante Teil. die Sessiondaten welche mit einem session_encode codiert wurden auszulesen, ohne dabei die bestehende Session zu zerstören:
//save old session
$oldSession = $_SESSION;
//decode adminhtml session
session_decode($sessionFile);
//save session data from $_SESSION
$adminSessionData = $_SESSION;
//set old session back to current session
$_SESSION = $oldSession;
}
Prüfen ob wirklich ein Admin Nutzer vorhanden ist und das entsprechende Admin User Objekt in eine Variable speichern:
if(array_key_exists('user', $adminSessionData['admin'])){
//save Mage_Admin_Model_User object in var
$adminUserObj = $adminSessionData['admin']['user'];
}
Nun ist es ohne weiteres möglich mit dem Admin Nutzer Objekt zu arbeiten.
3 Antworten
Thank you very much it worked for me. thank you again. it helps me a lot
My problem with Detect if admin is logged in in frontend pages is solved with this code. Thank you very much!
[…] https://peters-christoph.de/tutorials/magento-pruefe-admin-session-logi-im-frontend/ […]