User abfrage in Bootstrap.php geht nicht

Hallo Ich habe in Bootstrap.php eine Userabfrage drin leider wird das nicht ausgeführt Ich habe das HttpCache deaktiviert hilft leider nix if ( Shopware()-\>Modules()-\>Admin()-\>sCheckUser() ) Wie mach ich die User abfrage in SW5 Richtig?

Kann ich heute Abend ggf. mal testen, aber das hier sollte schon helfen… $session = $arguments-\>getSession(); $user = $arguments-\>getUser();

Wie fragst du es dann ab? Ich habe das jetzt so gelöst if (Shopware()-\>System()-\>\_SESSION['sUserId']) das geht ganz gut aber ich weiß nicht ob so gut ist

Hi, der kürzeste Weg wäre ja: if (!empty($this->get(‘session’)->sUserId)) { bzw: if (!empty(Shopware()->System()->sUserId)) { aber man sollte “session” bzw. bei euch “system” nicht überall verwenden, da es eine Abhänigkeit auf die Frontend-Session hat. Also nur bei den Events: Enlight_Controller_Action_*_Frontend* Enlight_Controller_Action_*_Widgets* Beispiel: https://github.com/shopware/shopware/bl … er.php#L56 Heiner

Hallo, wir kann ich denn in einem Plugin abfragen, ob der user angemeldet ist? Ich würde gerne eine Weiterleitung zum Login haben, wenn der Kunde nicht angemeldet ist. Bis jetzt habe ich folgendes: public function onFrontendPreDispatch(Enlight\_Event\_EventArgs $args) { /\*\* @var \Enlight\_Controller\_Action $controller \*/ $controller = $args-\>get('subject'); /\*\* @var Enlight\_Controller\_Request\_RequestHttp $request \*/ $request = $args-\>get('request'); //if ($request-\>getControllerName() == 'register') { // return; //} if (!empty($this-\>get('session')-\>sUserId)) { return; } else { $controller-\>forward('index', 'register'); } } Mit dieser Funktion passiert leider gar nichts. Mache ich was falsch?

$customerId = Shopware()-\>Session()-\>sUserId; if ($action !== "finish" || $customerId === null) { return; } Damit prüfst du, ob ein User eingeloggt ist.

du müsstest eigentlich in einer Endlos-Schleife landen, da du immer wieder auf die Login-/Registrierungs-Seite weiterleitest, ohne diese selbst abzuarbeiten den Controller/Action, auf den zu weiterleiten willst, musst du zulassen, also diesen Code wieder ent-kommentieren: //if ($request-\>getControllerName() == 'register') { // return; //}