Seite 1 von 2

Abfrage der Gruppenzugehörigkeit für den rest der page

Verfasst: 13.10.2005 18:17
von Zothos
hallo,

hab mich mal rangesetzt und versucht,
http://www.phpbb.de/moddb/mod.php?id=163
das hier so umzubauen das ich es für den rest der page verwenden kann und so dann erreichen kann das ich spezielle bereiche wie das intern verwenden kann :P

bin admin einer clanpage :P

naja habs zum Spaß mal eingebaut und versucht es eben anzupassen :P
naja mit weniger erfolg, ohne den include von phpbb etc. gehts nich.
und wenn ich include kommter immer mit dem template etc, von phpbb :P

iss zwar schön, aber ich will das für meine page :P

jemand ne ahnung wie ich das so anpassen kann?

Verfasst: 13.10.2005 20:13
von Zothos
keiner ne idee??

Verfasst: 14.10.2005 00:19
von Eoleon
warum gibst du dem Gruppen keine Einzelrechte?
Spezielle Bereiche als "privat" einstellen und entsprechende Rechte vergeben ;)

Verfasst: 14.10.2005 08:25
von Zothos
Ich will die abfrage für den rest der homepage verwenden, der rest ist nicht irgendwie in phpbb eingebaut. sondern eigenständig.

Ich will nämlich das intern für meinen Clan nur zugänglich machen für leude die im forum in der gruppe, z.b. Members sind.

Aber anscheinend hats da includierte funktionen die mich dann wieder auf die mainpage verlinken ... vom forum..

testet doch mal das script ihr werdets sehen

Verfasst: 14.10.2005 09:23
von mad-manne
Also ich habe dich richtig verstanden?

Du hast ein phpBB-Board, und möchtest mit dem genannten MOD eine Seite anbieten, die nicht das phpBB Template-system nutzt?

Es sollen aber nur die Mitglieder bestimmter Gruppen ZUgriff darauf haben?

O.K. dann hab' ich das mal jetzt so umgebaut:

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 = 'pfad_zu_deinem_phpbb/';
// ODER wenn du das Skipt im selben Ordner wie phpBB liegen hast ...
// dann musst du natürlich die beiden Kommentarzeichen // vorne wegnehmen!
// $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 
// 

// 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[] = '4'; //User mit id 4 hat Zugriff

$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 ) 
{ 
    // Hier werden die nicht Berechtigten "abgefertigt"
	echo 'Du hast hier keinen Zutritt!'; 
	exit;
} 

// Ab hier geht's mit dem Teil los, den die Berechtigten sehen sollen ...
echo 'Herzlich willkommen auf meiner Seite';
?>
Das mit der Prüfung der Gruppenzugehörigekit hat bei mir nicht geklappt, aber evtl. ist es noch zu früh 8)

Aber das Konzept sollte klar werden :wink:
Viel Erfolg,
Manne.

Verfasst: 14.10.2005 09:53
von Zothos
Genau :)

und thx, gleich mal vergleichen wo bei mir der fehler lag :P

Verfasst: 14.10.2005 09:56
von Zothos

Code: Alles auswählen

 if( !$access_allowed ) 
        { 
                message_die(GENERAL_MESSAGE, 'Sie haben keinen Zugriff auf diese Seite.'); 
        } 
Ach, das haste geändert.... :P
hmm.. ich probiers heude abend gleich mal aus. bin noch in der schule :P

Verfasst: 14.10.2005 10:03
von mad-manne
Zothos hat geschrieben:Ach, das haste geändert.... :P
hmm.. ich probiers heude abend gleich mal aus. bin noch in der schule :P
Nicht nur das .. sondern alles was mit der template-Engine zu tun hat! So wolltest du es doch :roll:

Den Rest kann man nicht rausnehmen, sonst kann das Script ja nicht wissen, ob der User berechtigt ist oder nicht :wink:

Na denn viel Spass beim Testen heute abend ...
Bei weiteren Fragen einfach wieder hier im Thema melden.

@moderatoren: Das könnte man doch auch mal nach Coding&Technik schieben ?!


So long,
Manne.

Verfasst: 08.08.2006 11:06
von mafiatom
In dem Script hatte sich ein Fehler eingeschlichen, richtig muss es heissen:

Code: Alles auswählen

        while($ergebnis = $db->sql_fetchrow($result) )
        { 
                if( in_array('g' . $ergebnis[group_id],$allowed_u )) 
                { 
                         $access_allowed = true; 
                         break; 
                } 
                if( in_array('g' . $ergebnis[group_name],$allowed_u)) 
                { 
                         $access_allowed = true; 
                         break; 
                } 
        } 
Dann klappt es auch mit den Gruppen!

Verfasst: 19.11.2007 08:22
von Cantor
Hallo,

funktioniert bei einem von Euch das auch noch nach dem Update des Boards auf 2.0.22? Und wenn ja wei? Bzw. warum funktioniert es bei mir nicht... ;-)

Bin für jeden Hinweis dankbar! :-)

Gruß, Cantor