Seite 1 von 1
"Wer hat Zugriff auf private Foren?"
Verfasst: 27.09.2006 23:09
von donald12
Hallo,
habe folgenden MOD installiert: "Overall Forums Permission Interactive Editor" der mir im ACP anzeigt auf einer Seite, welches Forum welche Berechtigungen hat.
Nun suche ich das gleiche für die Benutzerbefugnisverwaltung. Ich möchte praktisch bei jedem Forum sehen, wer als Moderator bzw. bei privaten Foren sehen wer Zugang hat.
Gibt es das?
Thanks
Donald12
Verfasst: 29.09.2006 10:26
von donald12
Hallo,
gibt es das wirklich noch nicht ? Wäre echt praktisch...
Donald12
Verfasst: 29.09.2006 21:13
von donald12
Hallo,
habe die Lösung selbst gecodet. Zwar jetzt ohne Template System, es wird einfach mit echo ausgegeben, wer auf welches Forum Zugriff hat, dass in den Befugnissen bei "Ansicht" auf "Privat" gestellt ist. Aber reicht mir.
PS: Bin php Anfänger, sorry, wenns komisch aussieht
Code: Alles auswählen
// Alle Foren holen
$all_foren_sql = "SELECT *
FROM " . FORUMS_TABLE . "
WHERE auth_view = 2";
if ( !($all_foren_result = $db->sql_query($all_foren_sql)) )
{
message_die(GENERAL_ERROR, 'Kann keine Foren holen', '', __LINE__, __FILE__, $all_foren_sql);
}
while( $all_foren_row = $db->sql_fetchrow($all_foren_result) )
{
$anzahl = 0;
echo '<br>';
echo '<b>' . $all_foren_row['forum_name'] . '</b><br>';
// Berechtigungen holen
$berechtigung_sql = "SELECT *
FROM " . AUTH_ACCESS_TABLE . "
WHERE forum_id = " . $all_foren_row['forum_id'];
if ( !($berechtigung_result = $db->sql_query($berechtigung_sql)) )
{
message_die(GENERAL_ERROR, 'Kann keine Foren holen', '', __LINE__, __FILE__, $berechtigung_sql);
}
while( $berechtigung_row = $db->sql_fetchrow($berechtigung_result) )
{
// Gruppe holen
$gruppe_sql = "SELECT *
FROM " . USER_GROUP_TABLE . "
WHERE group_id = " . $berechtigung_row['group_id'];
if ( !($gruppe_result = $db->sql_query($gruppe_sql)) )
{
message_die(GENERAL_ERROR, 'Kann keine Foren holen', '', __LINE__, __FILE__, $gruppe_sql);
}
while( $gruppe_row = $db->sql_fetchrow($gruppe_result) )
{
// Username holen
$user_sql = "SELECT *
FROM " . USERS_TABLE . "
WHERE user_id = " . $gruppe_row['user_id'];
if ( !($user_result = $db->sql_query($user_sql)) )
{
message_die(GENERAL_ERROR, 'Kann keine Foren holen', '', __LINE__, __FILE__, $user_sql);
}
while( $user_row = $db->sql_fetchrow($user_result) )
{
$anzahl = $anzahl + 1;
echo $anzahl . '. ' . $user_row['username'] . '<br>';
}
}
}
}
Verfasst: 30.09.2006 09:29
von Argon
Darf man erfahren wo und in welche datei es eingefügt werden muss!
Verfasst: 30.09.2006 12:21
von donald12
Hallo,
Argon hat geschrieben:Darf man erfahren wo und in welche datei es eingefügt werden muss!
Ich habe es einfach in eine neue Admin Datei eingefügt (z.B. admin_forenzugang.php) im Admin Verzeichnis.
Code: Alles auswählen
<?php
define('IN_PHPBB', 1);
if( !empty($setmodules) )
{
$filename = basename(__FILE__);
$module['Forums']['Forenzugang'] = append_sid($filename);
return;
}
//
// Load default header
//
$phpbb_root_path = "../";
require($phpbb_root_path . 'extension.inc');
require('pagestart.' . $phpEx);
// Alle Foren holen
$all_foren_sql = "SELECT *
FROM " . FORUMS_TABLE . "
WHERE auth_view = 2";
if ( !($all_foren_result = $db->sql_query($all_foren_sql)) )
{
message_die(GENERAL_ERROR, 'Kann keine Foren holen', '', __LINE__, __FILE__, $all_foren_sql);
}
while( $all_foren_row = $db->sql_fetchrow($all_foren_result) )
{
$anzahl = 0;
echo '<br>';
echo '<b>' . $all_foren_row['forum_name'] . '</b><br>';
// Berechtigungen holen
$berechtigung_sql = "SELECT *
FROM " . AUTH_ACCESS_TABLE . "
WHERE forum_id = " . $all_foren_row['forum_id'];
if ( !($berechtigung_result = $db->sql_query($berechtigung_sql)) )
{
message_die(GENERAL_ERROR, 'Kann keine Foren holen', '', __LINE__, __FILE__, $berechtigung_sql);
}
while( $berechtigung_row = $db->sql_fetchrow($berechtigung_result) )
{
// Gruppe holen
$gruppe_sql = "SELECT *
FROM " . USER_GROUP_TABLE . "
WHERE group_id = " . $berechtigung_row['group_id'];
if ( !($gruppe_result = $db->sql_query($gruppe_sql)) )
{
message_die(GENERAL_ERROR, 'Kann keine Foren holen', '', __LINE__, __FILE__, $gruppe_sql);
}
while( $gruppe_row = $db->sql_fetchrow($gruppe_result) )
{
// Username holen
$user_sql = "SELECT *
FROM " . USERS_TABLE . "
WHERE user_id = " . $gruppe_row['user_id'];
if ( !($user_result = $db->sql_query($user_sql)) )
{
message_die(GENERAL_ERROR, 'Kann keine Foren holen', '', __LINE__, __FILE__, $user_sql);
}
while( $user_row = $db->sql_fetchrow($user_result) )
{
$anzahl = $anzahl + 1;
echo $anzahl . '. ' . $user_row['username'] . '<br>';
}
}
}
}
include('./page_footer_admin.'.$phpEx);
?>
Wie gesagt, es ist ohne Template System, wer will, kann es ja noch einbauen. Für meine Zwecke reicht es. Und es werden auch nur Benutzer der Foren angezeigt, die in den Forenberechtigungen unter "Ansicht" auf "Privat" auf eingestellt sind.
Donald12