Zum Inhalt springen

Modul Web Anzeigen Fatal Error in Extbase Extension?

Erstellt am 7. Juni 2011 · Noch keine Antworten

Tags: Frage

typonewbe ·

Hallo,

zum Problem. Habe auf mehreren Seiten meine Webseite Extensions am laufen, die mit Extbase geschrieben worden sind. Eine dieser Extensions fragt die FE-User ab bzw. holt Daten eines Fe-Users aus den Tabellen vergleichbar mit einem Forum wo ein User sich seine letzten Posts anzeigen lassen kann.

Im Frontend alles kein Problem
ein uneingeloggter Besucher sieht nur normalen Inhalt ein eingeloggter eben seine Sachen.

Jetzt wollte ich mir die Startseite einmal über das Modul Anzeigen ansehen und bekam die Fehlermeldung:

Call to a member function getUid() on a non-object in ../my_ext/Classes/Controller/UserController.php on line 1205

Ein Blick in die Zeile sagte mit das an dieser Stelle ein Abfrage gestartet wird die Informationen zu einem FE-USer abruft.

$id = $GLOBALS['TSFE']->fe_user->user['uid'];
$user = $this->userRepository->findByUid($id);
$this->getUserInfos(intval($user->getUid()));

Meine Vermutung ist es, das TYPO3 entweder Denkt er sei ein FE-User und in der Extension wird eine id gesucht die dann nicht existiert somit gibt es ein leeres ObjeKt zurück worauf getUid() dann einen Fehler schmeißt.

Oder TYPO3 ignoriert generell im BE alle FE Benutzer Zuriffsrechte.

Ein Grund für Fall 1 ist, das wenn ich mich im FE Einlogge verschwindet der Fehler bzw. verschiebt sich, da ich mehrere Benutzergruppen hab und mich z.B. mit Benutzergruppe 1 anmelde springt der Fatal Error an eine Stelle wo Benutzergruppe 2 abgefragt wird und umgedreht.

Leider kann ich mich nicht mit beiden Gruppen gleichzeitig anmelden.

Ein Grund für Fall 2 deutet darauf hin, da als nicht eingeloggter User müsste ich ja zumindest den Inhalt sehen der für alle zugänglich ist, da aber ein Fehler kommt wird das Plugin Aufgerufen das eigentlich erst dann Sichtbar sein darf wenn ein FE- User angemeldet ist.

Tja irgendwie stehe ich da etwas auf dem Schlauch mein erster Lösungsansatz war, das ich in meiner Extension die Fehlerbehandlung erweitere und Abfange wenn kein User eingeloggt gebe einen leeren View aus.

Das ist aber in zweierlei Hinsicht ungünstig zum einem da ich jede Methode anfassen müsste in der eine Abfrage über den FE-User stattfindet zum anderen kann das nicht die Lösung sein da damit das eigentliche Problem nicht gelöst wird, nämlich wenn ich ein normaler Webseitenbenutzer bin dann würde ich nach meinem Fehlerhändling zum normalen Inhalt auch die leeren Views der Extensions im Modul Web Anzeigen sehen.

Eventuell habt Ihr ja einen Vorschlag für mich

PS:
Die Extension wurde als Plugin in einem Sysordner angelegt und da diese auf jeder Seite erscheinen soll mittels TypoScript über RECORDS auf einen MARKER gelegt.

Danke schon mal im Voraus für eure Mühen

Grüße typonewbe