Rechte System

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
fragz
Mitglied
Beiträge: 204
Registriert: 23.10.2006 12:52
Kontaktdaten:

Rechte System

Beitrag von fragz »

HiHo,

Ich habe vor kurzen einen Mod gecodet und den würde ich gerne mit der Rechte Vergabe des phpbb3 versehen.
Wie ganau gehe ich davor? Ich habe mir bereits einige Mods angeschaut und konnte nur 2 Sachen finden. Einmal eben die Datenbank einträge

Code: Alles auswählen

INSERT INTO `phpbb_acl_options` (`auth_option`, `is_global`, `is_local`, `founder_only`) VALUES
	('u_add_kb', 1, 0, 0),
	('u_edit_kb', 1, 0, 0),
	('u_del_kb', 1, 0, 0),
	('u_print_kb', 1, 0, 0),
	('u_attache_kb', 1, 0, 0),
	('u_report_kb', 1, 0, 0);
und eben der php Code im Header des Mods

Code: Alles auswählen

if (!$auth->acl_get('u_add_kb', 'u_edit_kb', 'u_del_kb', 'm_edit_kb', 'm_del_kb'))
{
    trigger_error('NOT_AUTHORISED');
} 
Ist dies alles an Code oder habe ich dort etwas übersehen?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Rechte System

Beitrag von gn#36 »

Eine recht ausführliche Anweisung zur Nutzung der auth Klasse findest du in dem docs Ordner deines Forums.

acl_get ist für mehrere Rechte die falsche Funktion, diese Funktion prüft nur ein Recht. Wenn du die Rechte UND verknüpfen willst musst du sie also einzeln prüfen:

Code: Alles auswählen

$auth->acl_get('recht1') && $auth->acl_get('recht2') ... 
Wenn du sie ODER Verknüpfen willst brauchst du nur ein weiteres s in deinen Code einbauen:

Code: Alles auswählen

$auth->acl_gets('option1', 'option2', ...) 
Für die Datenbankinserts gibt es auch eine Alternativfunktion die zu einer Klasse gehört. Siehe auch http://wiki.phpbb.com/Permissions, KB:rechtesystem
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“