Auslesen der Gruppenzugehörigkeiten eines benutzers
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.
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.
Hallo Dave,
die Seiten befinden sich alle innerhalb des phpbb Verzeichnises, sind daher fest eingebunden. Ok, dann werde ich das über das auth() System realisieren, zumindest bei der Navigation. Bei den Themenseiten sind es im Verhältnis nur ein paar Seiten, da weis ich noch nicht genau, wie ich es dann mache.
Gruß Helmut
die Seiten befinden sich alle innerhalb des phpbb Verzeichnises, sind daher fest eingebunden. Ok, dann werde ich das über das auth() System realisieren, zumindest bei der Navigation. Bei den Themenseiten sind es im Verhältnis nur ein paar Seiten, da weis ich noch nicht genau, wie ich es dann mache.
Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Hallo,
bei der Navigation bin ich noch nicht richtig weiter gekommen. Ich habe in der Tabelle für die Menüpunkte auch eine Spalte in der die Gruppen ID's eingetragen sind, welcher der betreffende User sehen darf. Damit möchte ich dann schon bei der Abfrage der Menüpunkte aus der Tabelle die betreffenden Punkte ausfiltern.
Um das so machen zu können, muss ich aber schon vorher wissen, in welchen Gruppen der jeweilige User Mitglied ist. Wie bekomme ich nun eine Liste dieser Gruppen ID's?
Gruß Helmut
bei der Navigation bin ich noch nicht richtig weiter gekommen. Ich habe in der Tabelle für die Menüpunkte auch eine Spalte in der die Gruppen ID's eingetragen sind, welcher der betreffende User sehen darf. Damit möchte ich dann schon bei der Abfrage der Menüpunkte aus der Tabelle die betreffenden Punkte ausfiltern.
Um das so machen zu können, muss ich aber schon vorher wissen, in welchen Gruppen der jeweilige User Mitglied ist. Wie bekomme ich nun eine Liste dieser Gruppen ID's?
Gruß Helmut
Ich bin nicht ganz dicht.... na und.
includes/functions_user.phpHelmut hat geschrieben:Um das so machen zu können, muss ich aber schon vorher wissen, in welchen Gruppen der jeweilige User Mitglied ist. Wie bekomme ich nun eine Liste dieser Gruppen ID's?
Code: Alles auswählen
/**
* Obtain either the members of a specified group, the groups the specified user is subscribed to
* or checking if a specified user is in a specified group. This function does not return pending memberships.
*
* Note: Never use this more than once... first group your users/groups
*/
function group_memberships($group_id_ary = false, $user_id_ary = false, $return_bool = false)
Code: Alles auswählen
group_memberships(false, 2);
Dave
Hallo Dave,
das mit der Funktion group_memberships habe ich mir schon angeschaut, aber das bringt mir ja kein array in der die ID's stehen.
Bei mir steht z.B. in der Tabelle in der Spalte tab_group_id für den betreffenden Menüpunkt 5,7,16, .... drinnen. Der User gehört den Gruppen 2,5,9, ... an, dann dürfte er den Menüpunkt sehen, weil er auch in der Gruppe 5 ist, welche in der Spalte genannt ist.
[EDIT]
Die Gruppen ID's des jeweiligen Users habe ich so aus der Tabelle user_group geholt:
Damit steht im Array $ids die Liste der Gruppen ID's des betreffenden Users durch ein Komma getrennt drinnen.
Wie müsste dann die Abfrage für die Datenbank aussehen, wenn bereits bei der Abfrage der Tabelle nach der Gruppenzugehörigkeit z.B. mit AND tab_group_id = $group_id gefiltert wird?
Gruß Helmut
das mit der Funktion group_memberships habe ich mir schon angeschaut, aber das bringt mir ja kein array in der die ID's stehen.
Bei mir steht z.B. in der Tabelle in der Spalte tab_group_id für den betreffenden Menüpunkt 5,7,16, .... drinnen. Der User gehört den Gruppen 2,5,9, ... an, dann dürfte er den Menüpunkt sehen, weil er auch in der Gruppe 5 ist, welche in der Spalte genannt ist.
[EDIT]
Die Gruppen ID's des jeweiligen Users habe ich so aus der Tabelle user_group geholt:
Code: Alles auswählen
// zu überprüfender User ( Beispiel: Der User, der diese Seite aufgerufen hat )
$benutzer_id = $user->data['user_id'];
$nav_list = array();
$sql = 'SELECT group_id, user_id
FROM ' . USER_GROUP_TABLE . "
WHERE user_id = $benutzer_id
ORDER BY user_id ASC";
$result = $db->sql_query($sql);
while ($nav_data = $db->sql_fetchrow($result))
{
for( $i = 0; $i < count($i); $i++ )
{
$nav_list[$i] = $nav_data['group_id'];
$ids = $nav_data['group_id'] . ',';
}
}
$db->sql_freeresult($result);
Wie müsste dann die Abfrage für die Datenbank aussehen, wenn bereits bei der Abfrage der Tabelle nach der Gruppenzugehörigkeit z.B. mit AND tab_group_id = $group_id gefiltert wird?
Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Hallo,
ich habe das Problem jetzt gelöst, es ging mit $sql_array = array( ...... Die Abfrage sieht jetzt so aus:
Die Vorlage dazu habe ich mir aus der Datei funktions_display.php abgeschaut.
Gruß Helmut
ich habe das Problem jetzt gelöst, es ging mit $sql_array = array( ...... Die Abfrage sieht jetzt so aus:
Code: Alles auswählen
//ID des eingeloggten Users bestimmen
$benutzer_id = $user->data['user_id'];
$sql_array = array(
'SELECT' => 'n.*, g.group_id, g.user_id',
'FROM' => array(
NAVIGATION_TABLE => 'n',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(USER_GROUP_TABLE => 'g'),
'ON' => "n.tab_group_id = g.group_id AND g.user_id = $benutzer_id",
),
),
'WHERE' => "((n.subtab_1 = 0) AND (n.tab_group_id = 0) AND ($status = 0)) OR ((n.subtab_1 = 0) AND (n.tab_group_id = g.group_id) AND ($status = 0))",
'ORDER BY' => "n.toptab ASC",
);
$sql = $db->sql_build_query('SELECT', $sql_array);
$result = $db->sql_query($sql);
while ($nav_data = $db->sql_fetchrow($result))
{
.......
Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Die Anleitung dazu findet man in den Coding Guidelines:
http://area51.phpbb.com/docs/coding-guidelines.html#sql
Dort mal nach: sql_build_query(): suchen.
http://area51.phpbb.com/docs/coding-guidelines.html#sql
Dort mal nach: sql_build_query(): suchen.
Dr.Death hat geschrieben: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)....
Kann es sein, daß dieses Snippet unter 3.0.1 nicht mehr funktioniert?
Gruß
Bitti
Bitti
Kann mir jemand dazu was sagen ob es funktioniert?Bitti hat geschrieben:Dr.Death hat geschrieben: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)....
Kann es sein, daß dieses Snippet unter 3.0.1 nicht mehr funktioniert?
Gruß
Bitti
Bitti