Zum Inhalt springen

BE Gruppen auslesen

Erstellt am 1. August 2005 · 1 Antwort · letzte Antwort am 15. August 2005

Tags: PHP, Frage

droptix ·

Wenn man als Admin im Backend auf den Punkt "Benutzer Administrator" geht und einen BE-User anklickt, erscheint zu diesem User eine Auflistung 'Member of groups'.

Ich möchte einfach die BE-Gruppen eines BE-Users auslesen, also einfach die ID oder den Usernamen an eine Funktion schicken und die liefert mir seine Gruppen-ID und Gruppen-Namen als Array zurück.

Wie stelle ich das an? Hab mir die Datei typo3_src-3.8.0/typo3/sysext/beuser/mod/index.php angesehen, die die Auflistung für den Punkt "Benutzer Administrator" erzeugt, aber echt nicht durchgesehen... da geht einfach zuviel!

droptix ·

Okay, das Problem ist, dass die Benutzergruppen als BLOB-Datentyp in der MySQL Datenbank liegen. Die lassen sich auch manuell auslesen, aber ich dachte, dass Typo3 dafür logischerweise gleich eine Funktion bereit hält.

Also ich lese das jetzt von Hand aus. Für Interessierte hier mein Skript:

<?php
$_DB = array();
$_DB['host'] = "mysql.domain.com";
$_DB['user'] = "db_user";
$_DB['pass'] = "db_pass";
$_DB['db'] = "db_name";

$_DB['cid'] = mysql_connect($_DB['host'], $_DB['user'], $_DB['pass']) or die("no mysql_connect()");
$_DB['sel'] = mysql_select_db($_DB['db'], $_DB['cid']) or die("no mysql_select_db()");

$_DB['query'] = "SELECT `usergroup` FROM `be_users` WHERE `username`='typo3username';";
$_DB['result'] = mysql_query($_DB['query']) or die("no mysql_query(): ".$_DB['query']);

$row = mysql_fetch_array($_DB['result']);

print_r($row);

mysql_close($_DB['cid']);
?>

Mehrere Benutzergruppen kommen als String mit Kommata separiert. Die kann man mittels der PHP-Funktion explode() splitten und auswerten...

Wenn mir jemand eine Typo3-integrierte Variante posten kann, wäre ich auch sehr interessiert.