Seite 1 von 1

Problem mit Gruppenverwaltung zum Schutz von Websites

Verfasst: 21.03.2003 19:58
von schnorpser
Hallo!
Habe den Autogroup-Mod installiert, welcher auch tadellos (so scheint es) funktioniert und alle User meines Forums einer Gruppe "Student" hinzugefügt.
Wollte nun eine Web-Seite mit dem Mod "Gruppenverwaltung zum Schutz von Websites" schützen. In der Konfiguration stellte ich ein:
$allowed_u[] = 'gStudent'; //gruppe

Nur leider haben die Mitgleider der Gruppe "Student" trotzdem keinen Zugriff. Auch per Gruppen-ID kam ich nicht weiter.

Hat jemand eine Idee? -> DANKE Euch allen!!!

PS: Gucken könnt Ihr bei http://www.htw-dd-forum.de.vu

Verfasst: 23.03.2003 15:45
von saerdnaer
zeig mal den header der datei...

achja und die url zu deiner hp wär auch nicht schlecht...

ah

Verfasst: 24.03.2003 17:50
von schnorpser
Da ist der Quelltext der Datei test.php -> http://www.norbert-martsch.de/forum/test.php
<?php
/***************************************************************************
* name.php
* -------------------
* 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 = '/***/norbert-martsch.de/forum/';
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, user_ids und usernamen erlaubt wobei bei den gruppen namen und ids ein g am anfang angehängt werden muss.
$allowed_u = array();
$allowed_u[] = 'gStudent'; //gruppe

$access_allowed = false;
if( in_array($userdata['user_id'],$allowed_u))
{
$access_allowed = true;
}
else if( in_array($userdata['username'],$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,$allowed_u ))
{
$access_allowed = true;
break;
}
if( in_array('g' . $group_name,$allowed_u))
{
$access_allowed = true;
break;
}
}
if( !$access_allowed )
{
message_die(GENERAL_MESSAGE, 'Sie haben keinen Zugriff auf diese Seite.');
}
}
?>

<html>
Hallo
</html>
<?php
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Danke schon mal...!!!

Verfasst: 25.03.2003 16:45
von saerdnaer
ach du benutzt bestimmt mysql4 als dblayer...
suche:

Code: Alles auswählen

while( list($group_id, $group_name) = $db->sql_fetchrow($result) ) 
{ 
if( in_array('g' . $group_id,$allowed_u )) 
{ 
$access_allowed = true; 
break; 
} 
if( in_array('g' . $group_name,$allowed_u)) 
{ 
$access_allowed = true; 
break; 
} 
} 
ersetzen durch

Code: Alles auswählen

while ( $row= $db->sql_fetchrow($result) ) 
{ 
if( in_array('g' . $row['group_id'], $allowed_u )) 
{ 
$access_allowed = true; 
break; 
} 
if( in_array('g' . $row['group_name'], $allowed_u)) 
{ 
$access_allowed = true; 
break; 
} 
} 

Verfasst: 25.03.2003 18:49
von schnorpser
DANKE! Das hat geholfen!

Gruß, Schnorpser