Eigener Controller

Hallo liebe Community,

 

ich habe mir einen Controller zusammengebaut, der „Hallo Welt“ ausgibt.

Es ist ein frontend Controller.

 

Nun meine Frage:

Gibt es die Möglichkeit im Controller zu sagen das dieser nur starten darf, wenn ein User eingeloggt ist, bzw. der Admin?

Habe schon soooooooooo viele Sachen auspribiert.

Mit „Shopware()->Session()->sUserId“ - Ergebnis nichts.

Mit „Shopware()->Modules()->Admin()->sGetUserData()“ aber auch da ist nichts in der Variable???

 

Kann mir da bitte jemand helfen?

Ich würde dies gerne in der init Function des Controllers einbauen - aber wie???

Bitte helfen…

L.G.

Naja wenn der Kunde nicht eingeloggt ist, ist Shopware()->Session()->sUserId eben leer :wink:

public function init() {
$user = Shopware()->Session()->sUserId;
if(empty($user)) die();
}

Müsste den Controller Aufruf unterbinden.

Hallo erst einmal vielen Dank für die Rückmeldung.

ich habe Deinen Code in meinen Controller übernommen, doch ich habe einen Fehler gemacht.

Es geht nicht darum dass ein KUNDE eingeloggt ist, sondern jemand der im BACKEND eingeloggt ist. Am besten der Admin.

Habe ich da Zugriff auf eine Variable?

Muß das im PreDispatch laufen?

 

Ich weiß, viele Fragen - doch wer nicht fragt bleibt dumm.

L.G.

Es geht nicht darum dass ein KUNDE eingeloggt ist, sondern jemand der im BACKEND eingeloggt ist

Hoffe ich habe dein Anliegen richtig verstanden. Im Frontend kannst du das nicht nach dem Backend abfragen. Du hast zwar ein Cookie, aber das ich auch vorhanden wenn du dich im Backend ausgeloggt hast. Zudem ist es nicht sicher.

Im Backend wird das teilweise über „Shopware()->Container()->get(‚Auth‘)->getIdentity()“ gemacht, aber das funktioniert nicht im Frontend!

 

Ich schließe mich IFF an. Ich glaube auch, dass das nicht ohne weiteres möglich ist.

Vielen lieben Dank für die Antworten!

Dann muß ich mal schauen, wie ich das sonst hinbekommen kann.

 

L.G.