Zum Inhalt springen

$GLOBALS["BE_USER"]->user[usergroup] nicht immer gefüllt!?

Erstellt am 7. August 2007 · 10 Antworten · letzte Antwort am 8. August 2007

Tags: PHP, Frage

NickD ·

hallo,

ich möchte gern die be-benutzergruppen in einer extension prüfen. dabei ist mir aufgefallen, das $GLOBALS["BE_USER"]->user[usergroup] nicht immer gefüllt ist, obwohl eine gruppe zugeordnet wurde! Ich habe das auch in der Datenbank nachgeprüft.

zum testen habe ich mir $GLOBALS["BE_USER"]->user[usergroup] ausgeben lassen. bei mir selbst (admin) ist es gefüllt und es wird alles wunderbar angezeigt.
dann habe ich einen neuen benutzer angelegt(kein admin) und diesem eine gruppe zugeteilt. die ausgabe von $GLOBALS["BE_USER"]->user[usergroup] ist "NULL". was mache ich falsch?

lg, nick

NickD ·

Mir ist aufgefallen, das bei einem normalen BE-Benutzeer ohne Amdin-Rechte $GLOBALS["BE_USER"]->user immmer NULL ist! Warum das?

steffenk ·

es kommt drauf an wo Du das abfragst, in tca.php sind die z.B. noch nicht initialisiert. Ausserdem muss ein BE-User keine Gruppe haben, wenn er admin ist.

NickD ·

ich habe eine die newloginbox angepasst. dort gebe ich auch $GLOBALS["BE_USER"] aus. wenn ich als admin eingeloggt bin, bekomme ich eine ausgabe (session-id,username,usw.). wenn ich mir nun ein neuen benutzer erstelle, mich mit diesem ins be einlogge und mir dann die ausgabe angucke, bleibt es leer (NULL).

Ausserdem muss ein BE-User keine Gruppe haben, wenn er admin ist.

Das ist klar, nur mein problem besteht nicht unbedingt bei den gruppen, sondern das die ganzen daten in $GLOBALS["BE_USER"] nicht vorhanden sind!

steffenk ·

FE und BE sind strict getrennt, es verwundert mich nicht, das Du im FE lein BE_USER hast. Dann musst Du ihn halt selber initialisieren

if(!is_object($GLOBALS['BE_USER']))  {
        define('TYPO3_PROCEED_IF_NO_USER', true);  //patch for crawler
        $GLOBALS['BE_USER'] = t3lib_div::makeInstance('t3lib_beUserAuth');	// New backend user object
        $GLOBALS['BE_USER']->start();			// Object is initialized
        $GLOBALS['BE_USER']->backendCheckLogin();	// Checking if there's a user logged in
        define('TYPO3_PROCEED_IF_NO_USER', false); 
 }
NickD ·

Danke für das Script! ich werde es gleich mal ausprobieren. Das FE und BE getrennt sind, habe ich mir bereits gedacht. ich wusste nur nicht, dass es noch nicht initialisiert ist. warum ist es im admin-zustand bereits initialisiert?

NickD ·

ich habe ein fehler gefunden. wenn ich dein script aufrufe und ich bin nicht im be eingeloggt, kommt der fehler, das class.t3lib_beuserauth.php nicht gefunden werden kann. sobald ich mich im be einlogge, ist alles ok.

ich habe den scriptteil in eine funktion geschoben, die ich am anfang in der main aufrufe.