Zum Inhalt springen

Verschachtelte FE Nutzergruppen auslesen (fe_groups und subgroups)

Erstellt am 9. April 2009 · 3 Antworten · letzte Antwort am 15. April 2009

Tags: Frontend-Benutzer, PHP, Frage

dabjoern ·

Hallo Leute,

wie kann man verschachtelte Benutzergruppen auslesen? Angenommen ich habe eine fe_group "A". Dieser Gruppe habe ich weitere Gruppen als Untergruppen zugeordnet, sagen wir "A1" und "A2". Den Untergruppen habe ich fe_users zugewiesen. Nun sitze ich hier vor einem riesen Code, den ein anderer Autor geschrieben hat und versuche dort eine Abfrage einzubauen, dass auch die Nutzer aus den Subgroups ausgelesen werden und nicht nur aus "A".

Kennt jemand eine Extension die das schon macht bzw. kann mir jemand erste Hinweise geben, wie ich das Problem lösen kann?

Viele Grüße, dabjoern

just2b ·

Hallo,

blöde frage aber warum nicht ein $this->cObj->enableFields($table) ? ansonste grab dich durch den core code bei der funktion, da sollte das eigentlich auch rasch auftauchen.

ansonsten ist das wohl auch einfach ne rekursive funktion, die alle gruppen-ids sammelt

georg

dabjoern ·

Hallo Georg,

ich habe mir jetzt nochmal die Extension angeschaut und versucht, zu verstehen, was da im Detail passiert. Leider sind die Abfragen sehr verstreut und ich blicke da jetzt auf die Schnelle nicht durch. Ich habe im Forge mal einen Issue angelegt (schon vor längerem) und nochmal gepusht. Vielleicht hat der Autor Bock, die Funktion einzuarbeiten. Wenn ich mehr Zeit habe, probiere ich weiter mein Glück.

Viele Grüße und Danke, dabjoern

ThBodi ·

Ich bin dem Vorschlag Georgs, $this->cObj->enableFields($table) nachzuvollziehen, mal nachgegangen. Das ist das Ergebnis:

Die globale Variable:

$GLOBALS['TSFE']->gr_list

enthält eine komma-separierte Liste aller Benutzergruppen des aktuellen Benutzers, außerdem noch die Werte 0 und -1 (= "Nach Anmeldung verbergen", wenn kein Benutzer angemeldet) bzw. -2 (= "Anzeigen, wenn angemeldet", wenn ein Benutzer angemeldet).

Diese Liste enthält auch evtl. Untergruppen. Eine Abfrage "per Hand" ist also nicht nötig.