Magento: Erkennen, ob Admin in Frontend-Seiten angemeldet ist
Habe ich eine magento-Erweiterung. Ich möchte zu implementieren, die den Zugriff auf die Erweiterung. Die Erweiterung erstellt eine Seite im frontend-und ich will nur mit admin-Zugriff auf die Seite. Also im Grunde brauche ich etwas, das erkennen würde, dass wenn admin eingeloggt ist im frontend-Seiten.
Ich habe versucht, mehrere Lösung, aber in Anbetracht zu funktionieren scheint .
if(Mage::getSingleton('admin/session', array('name' => 'adminhtml'))->isLoggedIn()) echo 'logged in'; else echo 'not logged in';
Überprüfen Sie im frontend, wenn admin angemeldet ist
Mage::getSingleton('core/session', array('name'=>'adminhtml'));
$adminSession = Mage::getSingleton('admin/session');
$adminSession->start();
if ($adminSession->isLoggedIn()) {
echo 'logged in';
}
InformationsquelleAutor der Frage Nirmal Ram | 2013-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den oben genannten Lösungen nicht funktioniert!
Hier ist eine Lösung, die funktioniert ( das ist nicht sauber ! aber das wird überall in Ihrer Anwendung in phtml view-oder Modell -, controller oder Helfer ! )
InformationsquelleAutor der Antwort Meabed
es ist ein neues magento-Modul, geschrieben von alan storm: https://github.com/astorm/Magento_CrossAreaSessions
InformationsquelleAutor der Antwort Kevin Horst
Christoph Peters einen link gepostet, die mein problem gelöst (Erkennen, ob der admin eingeloggt ist im frontend-Seiten):
Vielen Dank Christoph Peters!
InformationsquelleAutor der Antwort Daniel Badanjak
Werden, wenn Sie versuchen, es zu schaffen innerhalb der Vorlage /phtml-Dateien, und/oder in den Block, s-Klasse, du wirst eine harte Zeit haben. Vor allem, weil magento (aggressiv), speichert Ihr PHTML Blöcke für performance-Zwecke, also macht alle Programm-Ablaufsteuerung-Anweisungen, die Sie haben, vor allem Sachen, die im Zusammenhang mit cookie-überprüfung. Ich habe keine direkte /langen /fundierte Erklärung, warum, aber das ist nur, wie ich Sie angetroffen habe es immer und immer wieder.
Jedoch, Ihre Lösung sollte richtig sein, aber Sie müssen die Prüfung innerhalb eines Controllers preDispatch Methode wie so zu vermeiden, die oben genannten aggressiven caches da die Controller werden nie gecached. (gezeigt in Nick Lösung in der Frage, die Sie verknüpft.):
WENN Sie wirklich brauchen, zur Durchführung der oben genannten Kontrollen innerhalb PHTML-Dateien oder named Blöcke, überprüfen Sie die folgenden code, wie schalten Sie von block-level-caching und möglicherweise damit es funktioniert. Was ich Tat war vor dem deaktivieren der Zwischenspeicherung für den footer-block (in dem das Kind blockieren, nicht phtml, enthält code, um zu überprüfen
für ein bestimmtes cookie)
Zunächst einmal, den block aufrufen (zu finden in Ihrem local.xml oder Modul-layout-update-xml -, oder überall, das Sie tun können, layout-updates, wirklich. Ich bevorzuge brechen bis meine Anpassungen in Module, also auf jeden Fall Modul-layout-update-xml ist der Weg zu gehen):
- Und dies ist die newsletterpopup die block-Klasse:
Und die phtml wäre so etwas wie:
Glück!
InformationsquelleAutor der Antwort Seth Malaki
Hier ist eine Lösung, die das arbeiten mit Magento 1.7.0.2 (getestet) und auf jeder frontend Seite, ich nutze diese in einem controller nicht, die sich von Mage_Adminhtml_Controller_Action.
https://peters-christoph.de/tutorials/magento-pruefe-admin-session-logi-im-frontend/
InformationsquelleAutor der Antwort Christoph Peters
Abgesehen von versuchen zu ziehen session-id aus adminhtml cookie, die möglicherweise oder möglicherweise nicht funktionieren IMHO besser ist, nur "Haut" - Seite, die Sie brauchen, um zu schauen, wie Ihr im frontend-und admin-controller verwenden, so dass es läuft unter admin-session.
Eine andere Lösung ist das "kopieren" der Kunde von admin, frontend und protokollieren Sie in, bevor Sie auf Ihre Seite und dann ist es die Sache nur prüfen ob angemeldeter Kunde ist Mitglied einer Gruppe.
InformationsquelleAutor der Antwort nesh
Dieser code funktioniert
ODER
Haben Sie versucht, die dump
$_SESSION
variable? Vielleicht wird es Ihnen helfen, auf dem richtigen Weg.InformationsquelleAutor der Antwort Sumit Bijvani
InformationsquelleAutor der Antwort Livne Berebi
Es ist ziemlich einfach, aber nicht eine empfohlene Lösung. Ich selbst verbringe Anzahl der Stunden, dies zu tun.
Für windows-basierten server versuchen unten Lösung:
Für, Linux-basierten server versuchen unten Lösung:
Dank,
Kashif
InformationsquelleAutor der Antwort Kashif
Den Schlüssel nutzen zu können:
ist, dass die
controller
mussextends Mage_Adminhtml_Controller_Action
als Sie verwenden können Sie diesen code in
preDispatch
Funktion.Und setup der
routers
für diesen controller in deradmin
Abschnitt Ihrerconfig.xml
.InformationsquelleAutor der Antwort user457015
Wenn Sie mit cm redis session versuchen Sie dies: (für mich gearbeitet)
weil wenn Ihr mit cm redis Ihr schreibt db-session-Modul mit seinem eigenen Modell.
InformationsquelleAutor der Antwort Uğur Taşdildiren
Überprüfen dieser blogich glaube, Sie brauchen nicht zu überprüfen, mit
start()
vor der Prüfung mitisLoggedIn()
.InformationsquelleAutor der Antwort Vishnu Renku