Group_Access Mod - Seite nur für bestimmte Gruppe
Verfasst: 20.06.2005 01:21
Ich habe den group_access mod, also die Abfrage, ob der User in einer bestimmten Gruppe ist, auf einer Seite eingebaut, aber die Abfrage geht nicht so wirklich.
Egal ob ich der Gruppe angehöre bzw. ich bin ja Admin, die Seite wird mit einer Fehlermeldung geblockt:
"Sie haben keinen Zugriff auf diese Seite."
Test:
www.maxrev.de/gruppentest.php
Code: (Ich bin Mitglied aller aufgelisteten Gruppen.. sollte also eigentlich gehen..
)
Füge ich jedoch diese Codezeile hinzu:
Damit also die Gruppe mit der Nummer "3", der ich auch zugehöre, dann geht es.
Die Gruppe mit der Nummer "3" ist sehr alt.. also einer der ersten Gruppen überhaupt, aber was hat es damit auf sich
Egal ob ich der Gruppe angehöre bzw. ich bin ja Admin, die Seite wird mit einer Fehlermeldung geblockt:
"Sie haben keinen Zugriff auf diese Seite."
Test:
www.maxrev.de/gruppentest.php
Code: (Ich bin Mitglied aller aufgelisteten Gruppen.. sollte also eigentlich gehen..

Code: Alles auswählen
<?php
/***************************************************************************
* name.php Gruppenverwaltung zum Schutz von Websites
* -------------------
* copyright : (C) 2002
* email : mail
*
*
* uses phpBB technology (c) 2001 phpBB Group <http://www.phpbb.com/>
*
***************************************************************************/
/* **************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
// User die zugriff haben: es sind gruppen_ids, gruppennamen und user_ids erlaubt wobei bei den gruppen namen und ids ein g am anfang angehängt werden muss.
$allowed_u = array();
$allowed_u[] = 'g12'; //gruppe
$allowed_u[] = 'g379'; //gruppe
$allowed_u[] = 'g380'; //gruppe
$allowed_u[] = 'g480'; //gruppe
$access_allowed = false;
if( in_array($userdata['user_id'],$allowed_u))
{
$access_allowed = true;
}
else
{
$sql = "SELECT g.group_id, g.group_name
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id = '" . $userdata['user_id'] . "'
AND g.group_id = ug.group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get user group.', '', __LINE__, __FILE__, $sql);
}
$access_allowed = false;
while( list($group_id, $group_name) = $db->sql_fetchrow($result) )
{
if( in_array('g' . $group_id[group_id],$allowed_u ))
{
$access_allowed = true;
break;
}
if( in_array('g' . $group_name[group_name],$allowed_u))
{
$access_allowed = true;
break;
}
}
if( !$access_allowed )
{
message_die(GENERAL_MESSAGE, 'Sie haben keinen Zugriff auf diese Seite.');
}
}
?>
Ja geht doch ;)
<?php
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Füge ich jedoch diese Codezeile hinzu:
Code: Alles auswählen
$allowed_u[] = 'g3'; //gruppe
Die Gruppe mit der Nummer "3" ist sehr alt.. also einer der ersten Gruppen überhaupt, aber was hat es damit auf sich
