Zum Inhalt springen

FE-GROUPS für eine Art kalender

Erstellt am 27. November 2006 · 2 Antworten · letzte Antwort am 28. November 2006

Tags: Frontend-Benutzer, Frage

mr.​mc.​mauser ·

Hallo,

ich schreibe ein extension die eine Art Kalender darstellen soll.
Dieser Kalender soll immer dem Eingeloggten User zeigen welche Sitzung als nächstes für Ihn ist.

Ich habe dazu 2 Tabellen angelget:
1. Tabelle Bezeichnung der Sitzung, und FE User Gruppen auswählen
2. Gruppe eigentliche Termine inkl. Daten usw.

soweit so gut.

Nun Kann ich aus der Daten bank auslesen z.b. Tabelle 1. Sitzung=Bauauschuss zugriff: Bauausschussmitglieder(ID=2).

Soweit so gut nun gibt es aber die Übergeordnete Gruppe Bürgermesiter der ist automatisch mitglied Bei Bauauschussmitglieder

Nur wenn ich seine ID auslese kommt da nur z.b 14
Wie kann ich den Überprüfen ob der Bürgermeister der ja Übergeordnet ist auch sehen darf ?

Hier nochmals die Struktur meiner Gruppen
1. Bürgermeister
2. Ratsmitglieder
3. Ausschuss

Also Ausschuss darf fast nix, Rat darf das von Ausschuss + etwas mehr, Büregrmeister darf alles.

Im moment versuche ich es so:

$userGroupList = explode(',',$GLOBALS['TSFE']->fe_user->user[usergroup]);

Nur wie gesagt dabie kann ich nicht sehen das der Bürgermeister auch mitglied von Ausschuss ist.

Ich hoffe ich hab mich halbwegs verständlich ausgedrückt.

Gruß
Robert

steffenk ·

Du musst bei der Anzeige jeden Termins prüfen, ob der angemeldete User auch in der Berechtigungsgruppe ist.
Oder Du liest die Gruppe des Users aus ($GLOBALS['TSFE']->fe_user->user['usergroup']) und baust das in die sqlquery:
WHERE find_in_set($ug,'groups')

mr.​mc.​mauser ·

Hallo,

ich hab das ganze jetzt so gelöst:
1. Lesen aus DB welche Gruppen Zugriff haben wobei $row2 das Array aus der DB abfrage ist:

$zugriff=$row2['fe_group'];

2. Lesen zu welchen Gruppen der User gehört:

$gruppen=$GLOBALS['TSFE']->fe_user->groupData[uid];

3. dann lasse ich das ganze mittels Funktion testen:

if ($this->checkGroupAccess($gruppen,$zugriff){
 # Du darfst alles sehen
}else{
 # Du darfst nix sehen
}
# hier die Funktion:
function checkGroupAccess($u_group, $c_group) {
	$ergebnis=false;
	foreach ($u_group as $v) {
		if ($v==$c_group){
			$ergebnis=true;
		}
	}
	return $ergebnis;
}

ich weiss nicht ob das der elegante weg ist aber es Funktioniert !

Gruß
Robert