Seite 1 von 1

Rechte System

Verfasst: 13.01.2009 23:00
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?

Re: Rechte System

Verfasst: 14.01.2009 02:40
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