Ausführungsberechtigung auf eine Gruppe X erweitern ?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Ausführungsberechtigung auf eine Gruppe X erweitern ?

Beitrag 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
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag 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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag 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:
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag 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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hi,
Danke werde mich mal versuchen :wink:

THX AWSW :D
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Antworten

Zurück zu „Coding & Technik“