Benutzerrechte für phpcms-Admin-Oberfläche
Drei php-Dateien ersetzen, Benutzerrechte definieren und schon gibt es einen Minimaluser, der nur den Filemanager bedienen darf.
Ich nutze phpcms seit drei Wochen und es erfüllt genau meine Erwartungen an ein MiniCMS: Es ist leicht erweiterbar, andere php-Komponente lassen sich leicht integrieren, es tut nicht zu viel und nicht zu wenig.
In der Admin-Oberfläche hat mir allerdings gefehlt, dass ich mehrere Benutzer mit unterschiedlichen Rechten einrichten kann. Es sollte beispielsweise Benutzer geben können, die nur den Filemanager benutzen dürfen und sonst nichts.
Zum Einarbeiten in den php-Code habe ich diese Eigenschaft in meine Version 1.2.0 RC1 eingebaut. Es gibt jetzt beim Login ein zusätzliches Feld für den Benutzernamen. Die Behandlung des bisherigen Masterpassworts habe ich nicht verändert. In default.php gibt es eine Variable mehr, die alle Benutzernamen, Kennworte und Rechte enthält:
$this->PASS = 'masterpw'; $this->USER = 'user1:pw1:fc,user2:pw2:f';
In class.layout_phpcms.php habe ich die Logonmaske um das Textfeld username erweitert, die Funktion validPassword() hat jetzt den zusätzlichen Parameter username und die Menupunkte werden nun abhängig von den Userrechten angezeigt.
- 'f' Filemanager
- 'c' Configuration sehen
- 'w' Configuration ändern, im Filemanager auch Verzeichnis /parser/ bearbeiten
- 'r' root, alle speziellen Menupunkte: Indexer, Statistik usw.
Eine Rechteprüfung in class.layout_phpcms.php sieht so aus:
if(strchr($DEFAULTS->ACTIVE_RIGHTS, 'c')){
DrawMenuEntry('OPTIONS', $MESSAGES['NAVIGATION'][1], 'CONF');
}
Hier wird der Link 'Configuration' im Menu nur angezeigt wenn das Recht 'c' vorhanden ist. Weitere Rechte sind nach diesem Schema leicht einzubauen.
Folgende Dateien im /parser/include-Verzeichnis habe ich geändert:
- class.options_phpcms.php
- class.filemanager_phpcms.php
- class.layout_phpcms.php
Diese drei Dateien gibt es in einem ZIP-File zum Download.
Kurzanleitung: Originale sichern, die drei Dateien ins /parser/include-Verzeichnis kopieren, in default.php die neuen User einrichten und kontrollieren, dass FILEMANAGER_STARTDIR nicht /parser/ ist!, sonst können User im Filemanager selbst ihre Rechte ändern. Testen. Probleme per email an mich melden.
So sieht die Admin-Oberfläche nach dem Login mit den jeweiligen Rechten aus:| 'f' | 'fc' | 'fcwr' |
|
|
|
