In diesem Artikel wird der häufigste Fehler bei der Anwendung des Joomla! 1.7/2.5 Rechtesystems aufgezeigt. Durch die richtige Herangehensweise lässt sich der Umgang mit der ACL deutlich schmerzfreier gestalten.
Leider wird sogar in einigen Joomla!-Büchern die schmerzvolle Variante empfohlen, die den ganzen Prozess unnötig verkompliziert – kurzum: hier wird von der oberen Hierarchie nach unten gearbeitet. Doch genau anders herum macht es Sinn!
Hierarchien
Um das zu verstehen, muss man sich kurz noch einmal die Hierarchien in Erinnerung rufen.
Wie man anhand der schematischen Darstellung sehen kann, erbt eine untere Stufe immer Alles von allen hierarchisch übergeordneten Stufen. Die Kombination aus Berechtigungseinstellungen sowie Eltern- und Kindelementen samt allen Vererbungen ergibt die tatsächlich erlaubte oder verbotene Aktion.*
*Die Sichtbarkeit wird über Zugriffsebenen reguliert. Diese heißen standardmäßig „Public“, „Registered“ und „Special“ können jedoch seit Joomla! 1.6 um weitere Zugriffsebenen erweitert werden. Die Zugriffsebene Special muss einem User gegeben werden, wenn er das Backend sehen soll. Die Backend-Anmeldung muss in den Globalen Berechtigungen zusätzlich erlaubt werden. Dies als kurze Ergänzung der Vollständigkeit halber – in einem künftigen Tutorial wird das näher erläutert werden. Doch nun zurück zu den Aktionen.
Benutzergruppen
Super Users
Darf grundsätzlich Alles, erbt nichts
Public
Oberste hierarchische Gruppe – hier steht alles auf „Nicht vergeben“
Manager
Erbt von Public
Administrator
Erbt von Public und Manager
Registered
Erbt von Public
Author
Erbt von Public und Registered
Editor
Erbt von Public und Registered und Author
Publisher
Erbt von Public und Registered und Author und Editor
Berechtigungen / Einstellungen
Globale Berechtigungen
Erreichbar unter „Konfiguration“ -> „Berechtigungen“. Ist die oberste Hierarchie
Komponenten
Erreichbar unter dem „Option-Icon“ der Komponente. Erbt von „Globale Berechtigungen“
Kategorien
Erreichbar über „Inhalt“-> „Kategorien“ -> „Kategorie auswählen und bearbeiten“-> „Kategorienberechtigungen“. Erbt von „Globale Berechtigungen“ und „Komponenten“ und! von eventuell übergeordneten Kategorien.
Beitrag / Artikel
Erreichbar über „Inhalt“-> „Beiträge“ -> “ Artikel auswählen und bearbeiten“-> “ Beitragsberechtigungen“. Erbt von „Globale Berechtigungen“ und „Komponenten“ und allen! übergeordneten Kategorien.
Spalte „Einstellungen wählen“
Nachdem wir uns noch einmal die Hierarchien und ihre Vererbungswege angesehen haben, schauen wir uns nun ganz kurz die Spalte „Einstellungen wählen“ an. Die rechte Spalte zeigt die „errechneten Einstellungen“ und berechnet diese nach jedem Klick auf Speichern neu.
Nicht gesetzt
Nur in der Benutzergruppe Public anzufinden und bedeutet weder erlaubt noch verboten – Logik dahinter: Da nicht explizit erlaubt, ist auch kein Zugriff möglich.
Vererbt
Bestimmt, dass die Einstellungen der hierarchisch darüber liegenden Stufen/Gruppen auch für diese Stufe/Gruppe übernommen (also geerbt) werden.
Erlaubt
Erlaubt Einstellungen für diese Stufe/Gruppe. Wurde jedoch irgendwo in den darüber liegenden Hierarchien ein „Verweigert“ gesetzt, tritt ein Konflikt auf, der in der rechten Spalte angezeigt wird.
Verweigert
Verweigert Einstellungen für diese Stufe/Gruppe und für alle darunter liegenden Hierarchien. Lässt sich nicht durch ein „Erlaubt“ in den unteren Hierarchien wieder aufheben.
Von unten nach oben
Vielleicht ist es schon bei dem Rundgang durch die Hierarchien, Vererbungen und Einstellmöglichkeiten klar geworden: Was man oben einstellt, gilt bis ganz unten – und zwar so lange, bis man irgendwann in den unteren Hierarchien diese Einstellung wieder ändert.
Falscher Weg: Erlaubt man etwas ganz oben, ist es in allen unteren Hierarchien erst einmal grundsätzlich auch erlaubt (durch die Standard-Einstellung in den unteren Hierarchien auf „vererbt“). Also müsste man mühsam in diesen Hierarchien, immer dort wo es verboten sein soll, ein „Verweigert“ setzen.
Richtig: Man geht bei der Erlaubnis von unten nach oben. Soll Zugriff auf einen Artikel bestehen, setzt man hier die Einstellung auf „erlaubt“ und falls der Artikel in einer Kategorie steckt, ebenso die Einstellung dieser Kategorie auf „erlaubt“. Mehr ist dafür gar nicht notwendig!
Falscher Weg: Verweigert man ganz oben eine Berechtigung, kann das in allen darunter liegenden Hierarchien nicht mehr rückgängig gemacht werden.
Richtig: Nehmen wir mal ein Beispiel. Autoren dürfen in jeder Kategorie Beiträge erstellen, aber eine Kategorie soll davon ausgenommen werden. Die Gruppe Autoren erhält in dieser einen Kategorie bei den Berechtigungen „Erstellen“ sowie „Eigene Inhalte“ ein „Verweigert“.