Zum Inhalt springen

Gruppenzugehörigkeit testen

Erstellt am 9. August 2008 · 3 Antworten · letzte Antwort am 11. August 2008

Tags: FlexForms, Frontend-Benutzer, Frage

gebauer ·

Hallo,

gleich vorweg, ich bin noch recht neu in Typo3 und muss zugeben, dass ich mich schwer tue generelle Ressourcen (wie das PHP-Manual) für Typo3 zu finden.

In meiner Extension, sollen bestimmte Funktionen nur bestimmten Nutzergruppen zugänglich sein. Selbige werden im Flexform angegeben. In PHP muss ich nun die Gruppenzugehörigkeit des FE-Users überprüfen. Sicherlich kann ich die beiden Arrays aus dem Flexform und der $GLOBALS['TSFE']->fe_user vergleichen, aber dafür gibt es doch bestimmt auch eine Typo3 funktion für, oder?
Etwas in der Form userInGroup () ...?

Vielen Dank für die Hilfe,
Jan

Ich schreibe eine

gebauer ·

Hallo,

vielen Dank für die Antwort.
Die Funktion spart mir das PHP-Konstrukt

in_array ($item, split(',', $list))

.
Ich hatte aber gehofft, dass es noch eine andere Funktion gibt, da ja eine Nutzer oft in mehreren Gruppen ist, müsste ich mit o.g. Funktion jeden Wert aus $GLOBALS['TSFE']->fe_user->groupData['uid'] gegen die erlaubten Gruppen testen.
Das ist natürlich kein Problem und man kann das auch schön in einer Funktion kapseln. Aber wie gesagt, hatte ich gehofft, dass eine Core-Funktion mir diese Arbeit abnimmt.

Grüße,
Jan

gebauer ·

Hallo,

habe das jetyt erstmal so gelöst:

  function inGroup ($groups)
  {
   $user = $GLOBALS['TSFE']->fe_user->user[uid];
   if (is_string ($groups)) {
     $groups =  split(',', $groups);
   } 
   foreach ($GLOBALS['TSFE']->fe_user->groupData['uid'] as $group)
   {
    if (in_array ($group, $groups)) {
     return true;
    }
   }
   return false;
  }

Würde mich aber freuen, wenn jemand eine solceh Funktion aus Typo3 kennt (wenn es denn eine solche gibt).

Grüße,
Jan