Auslesen der Gruppenzugehörigkeiten eines benutzers

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Aktiv-X
Mitglied
Beiträge: 125
Registriert: 06.05.2007 20:06
Wohnort: Ahrensburg
Kontaktdaten:

Beitrag von Aktiv-X »

Hallo,

besten Dank für Skript zusatz. Hat super geklappt. Und ist eine echt einfache Lösung. Danke dir!
Bis dann und freundlichen Gruß
Aktiv-X
Benutzeravatar
Berliner Schildkroete
Mitglied
Beiträge: 563
Registriert: 30.03.2007 19:02
Wohnort: Berlin

Beitrag von Berliner Schildkroete »

oder in der PHP-Datei

Code: Alles auswählen

if (!$S_IN_GROUP)
{
     trigger_error('NOT_AUTHORISED');
}
:wink:
Grüße
Berliner Schildkröte
kein Support via PN, etc. - Befolgung meiner Vorschläge auf eigene Gefahr!
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

Ich hab gerade in phpbb3 selbst eine Funktion gefunden:
includes/functions_user.php

Code: Alles auswählen

function group_memberships($group_id_ary = false, $user_id_ary = false, $return_bool = false)
Damit lässt sich schnell herrausfinden, ob ein Benutzer in einer oder mehreren Gruppen ist.
kein Support per PN
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo nickvergessen,

hast du auch etwas dazu gefunden wie diese Funktion genau verwendet wird?

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hmpf,

die Funktion kannte ich noch nicht.... da hätte ich mir das ja sparen können ;-)

Ok, nun eine Anleitung dazu:

Damit die Funktion group_memberships() in Euren eigenen PHP Scripten funktioniert, muss die Datei includes/functions_user.php vorher geladen worden sein.

Beispiel:

Code: Alles auswählen

include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
Wir gehen nun davon aus, das die Funktion group_memberships() existent ist.

Szenario 1:
Überprüfung ob ein User in einer bestimmten Gruppe Mitglied ist:

Code: Alles auswählen

// zu überprüfende Gruppen ID ( Beispiel Gruppen ID 5 )
$gruppen_id = 5;

// zu überprüfender User ( Beispiel: Der User, der diese Seite aufgerufen hat )
$benutzer_id = $user->data['user_id'];

// Nun erfolgt die eigentliche Prüfung:
$is_in_group = group_memberships($group_id, $benutzer_id , true)
Die Variable $is_in_group wird nun mit true gefüllt sein, wenn der betroffene User in der zu überprüfenden Gruppe Mitglied ist.


Szenario 2:
Überprüfung ob ein User in mehreren bestimmten Gruppen Mitglied ist:

Code: Alles auswählen

// zu überprüfende Gruppen IDs ( Beispiel Gruppen ID 5, 10, 12, 15 )
// Hinweis: Bei mehreren Gruppen muss es ein array() sein!
$gruppen_id = array(5,10,12,15);

// zu überprüfender User ( Beispiel: Der User, der diese Seite aufgerufen hat )
$benutzer_id = $user->data['user_id'];

// Nun erfolgt die eigentliche Prüfung:
$is_in_group = group_memberships($group_id, $benutzer_id , true)
Die Variable $is_in_group wird nun mit true gefüllt sein, wenn der betroffene User in einer der zu überprüfenden Gruppe Mitglied ist.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo Dr.Death,

danke dir für die schnelle Antwort und für das Beispiel, das geht ja wirkich einfach damit.

Vielleicht könntest du das Thema in das Forum "phpBB 3.0: Snippets" verschieben, ich denke, da werden noch häufiger Fragen dazu kommen.

Gruß Helmut :wink:
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Verschoben hab ich es nicht...... aber ich hab eine Zusammenfassung dort erstellt:

Gruppenzugehörigkeiten eines Benutzers prüfen

Vielen Dank auch an alle Mitwirkende (Beta Tester)....
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

Interessant das ihr die funktion noch nicht gefunden habt :D.

Hätte mal früher hier rein schauen sollen xD

Nur als kleine info. Die funktion sollte man nicht zu oft verwenden da sie wohl sehr server lastig ist. Solltest du vieleicht in deinen Beitrag schreiben Dr.Death.

MfG
Dave
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo Dave,

danke dir für die Info, aber wie meinst du das genau mit "sehr Server lastig"?

Ich möchte diese Funktion gerne für einige Themenseiten zur Zugangskontrolle meiner neuen Homepage verwenden und auch für die Navigation, um dem User nur die Menu punkte zu zeigen, die er auch anwählen darf. Die Navigation ist ja immer da und wird bei jedem Klick darauf ausgeführt. Ich muss noch dazu sagen, dass bei mir die Navigation dynamisch mithilfe einer Datenbanktabelle erzeugt wird, sind mehrere hundert Einträge in der Tabelle.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

Siehe der funktiontext:
* Note: Never use this more than once... first group your users/groups
Aber da du die Gruppen oder User als array() angeben kannst sollte es ja möglich sein alles auf einmal zu bekommen.

Als auth() system würde ich das eher nicht nutzen. Dafür würde ich lieber das auth() System vom phpBB nutzen. Dafür müßtest du auf jeden fall die seiten ins phpBB einbinden.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“