Seite 1 von 1

Ausführungsberechtigung auf eine Gruppe X erweitern ?

Verfasst: 03.03.2003 17:16
von AWSW
Hallo,
mit dem folgenden Code (Teilauszug) kann man in der pagetail.php ja festlegen, dass nur Moderatoren und Admins im Footer einen Link sehen (wie beim Administrations-Bereich-Link...):

Code: Alles auswählen

$XYZ_link = ( $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD ) ? ':: <a href="XYZ.php">' . $lang['XYZText1'] . '</a>' :'';
Wie müsste man den Code denn erweitern, wenn auch User die Mitglied in einer Gruppe X diesen Link sehen sollen ???

Das war der erste Teil der Prüfung...

--------------------------------------------------------------------------------------

Teil 2: ...

In der XYZ.php habe ich dann noch eine Prüfung drin, die bisher auch nur Moderatoren und Admins die Ausführung zulässt:

Code: Alles auswählen

// User überprüfen START
if ( $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD ) 
{
// OK -> Weiter machen :o)
}
else
{
message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
exit;
}
// User überprüfen ENDE
Wie müsste bitte die Änderung hier aussehen, damit auch User die Mitglied in einer Gruppe X diese Datei ausführen dürfen ???



Besten Dank für jeden Tipp :D

Verfasst: 03.03.2003 17:31
von PhilippK
AWSW,

ganz so einfach ist das nicht, da dir die Gruppenzuordnung nicht in der nötigen Form vorliegt.
Du musst also vorher die user-group-Tabellen abfragen, also ungefähr so:

Code: Alles auswählen

$sql = "SELECT user_id, group_id
    FROM " . USER_GROUP_TABLE . "
    WHERE group_id IN (1,2,3)
        AND user_id = " . $userdata['user_id']
Wenn dir das ganze dann ein Ergebnis (Achtung: den ersten Schritt, also bei phpBB $result sollte immer klappen, der zweite Schritt ($row) ist der entscheidende) zurückgibt, ist der Benutzer in den entsprechenden Tabellen vorhanden. Damit kannst du dann die entsprechenden weiteren Checks durchführen.

Alternativ könnte man natürlich eine entsprechende Funktion definieren...

Gruß, Philipp

Verfasst: 03.03.2003 18:13
von AWSW
Hallo,
sorry wenn ich so blöd frage, aber so weit bin ich noch nicht, um den Code 100% zu lesen...

Würde das dann so aussehen ???

Code: Alles auswählen

if ( $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD || $sql = "SELECT user_id, group_id FROM " . USER_GROUP_TABLE . "  WHERE group_id IN (1,2,3) AND user_id = " . $userdata['user_id'] )
THX AWSW :wink:

Verfasst: 03.03.2003 18:37
von PhilippK
Schau dir mal im PHP-Code an, wie phpBB eine SQL-Abfrage durchführt. Wenn du diesen Weg raus hast, kannst du dann als nächstes die SQL-Abfrage basteln, die du allerdings VOR dem if-Teil ausführen musst. Kanns dir gerade nicht direkt rausschreiben...

Gruß, Philipp

Verfasst: 03.03.2003 18:40
von AWSW
Hi,
Danke werde mich mal versuchen :wink:

THX AWSW :D