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
bin admin einer clanpage
naja habs zum Spaß mal eingebaut und versucht es eben anzupassen

naja mit weniger erfolg, ohne den include von phpbb etc. gehts nich.
und wenn ich include kommter immer mit dem template etc, von phpbb
iss zwar schön, aber ich will das für meine page
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
Aber das Konzept sollte klar werden

Viel Erfolg,
Manne.
Verfasst: 14.10.2005 09:53
von Zothos
Genau
und thx, gleich mal vergleichen wo bei mir der fehler lag

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....

hmm.. ich probiers heude abend gleich mal aus. bin noch in der schule

Verfasst: 14.10.2005 10:03
von mad-manne
Zothos hat geschrieben:Ach, das haste geändert....

hmm.. ich probiers heude abend gleich mal aus. bin noch in der schule

Nicht
nur das .. sondern alles was mit der template-Engine zu tun hat! So wolltest du es doch
Den Rest kann man nicht rausnehmen, sonst kann das Script ja nicht wissen, ob der User berechtigt ist oder nicht
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