11.3 Berechtigungen setzen
Nach der Organisation von Benutzern und Benutzergruppen geht es nun daran, Berechtigungen zu setzen. Die von Joomla! standardmäßig eingerichteten Benutzergruppen sind in sich schlüssig und sollten möglichst nicht verändert werden, um stets eine stabile Berechtigungsbasis zu haben, aus der neue Gruppen abgeleitet werden. Dieser Abschnitt beschäftigt sich deshalb mit der Konfiguration der eingangs neu angelegten Benutzergruppen Auditorium und Moderator.
Das Rechtesystem von Joomla! ist über viele Jahre entstanden und auf den ersten Blick verhältnismäßig komplex. Wenn Sie aber darangehen, eine Benutzergruppe zielgenau zu konfigurieren, blicken Sie schnell hinter das System. Der Trick ist zum einen das Verständnis der Rechtevererbung und zum anderen das Wissen, an welcher Stelle man für eine Berechtigungskonfiguration ansetzt.
Grundsätzlich sind Berechtigungen an verschiedenen Stellen konfigurierbar:
-
global für alle Komponenten der Website
-
individuell pro Komponente (Beiträge, Kontakte, aber auch Menü- oder Modulkonfigurationen)
-
zusätzlich für den Contentbereich anhand individueller Kategorien und Beiträge
An welcher Stelle welche Berechtigung greift, hängt davon ab, ob das eigentliche Recht gesetzt oder nicht gesetzt ist. Wird ein Recht nicht explizit gesetzt (Markierung als Erlaubt oder Verweigert), erbt die entsprechende Berechtigung ihre Einstellung aus der hierarchisch übergeordneten Konfiguration. Krux: Steht eine Berechtigung an irgendeiner Stelle auf Verweigert, wird diese Regel niemals überschrieben. Also auch nicht, wenn in einer der tieferen Berechtigungsebenen ein bestimmtes Element wieder auf Erlaubt gesetzt wurde.
Die Vererbungshierarchie läuft dabei anhand von zwei Achsen:
-
anhand der Berechtigungshierarchie
global, vererbt an komponenten-spezifisch, vererbt an Kategorien, vererben an Beiträge -
anhand der Benutzergruppenhierarchie
z. B. Öffentlich vererbt an Registriert, vererbt an Autor, vererbt an Editor etc.
Bei der Prüfung, ob ein Benutzer also eine bestimmte Berechtigung besitzt, wandert Joomla! in jedem einzelnen Fall einen klaren, aber komplexen Vererbungsbaum entlang, bis das CMS eine eindeutige Aussage vorfindet: Erlaubt oder Verweigert. Am Beispiel der neuen Benutzergruppe Moderator lässt sich dieser Pfad anhand der Berechtigung Beitrag bearbeiten in Abbildung 11.9 nachvollziehen.
Joomla! klappert nacheinander die Berechtigungen von der kleinsten Detailstufe bis hin zur globalen Konfiguration ab und berücksichtigt dabei stets etwaig vererbte Berechtigungen innerhalb der Benutzergruppenhierarchie. Meistens findet das System immer den Wert Vererbt und schaut deshalb weiter. In der globalen Konfiguration von Manager wird Joomla! schließlich fündig. Dieser darf Beiträge bearbeiten, und da der Moderator alle Berechtigungen des Managers erbt, erhält dieser ebenfalls die Erlaubnis. Joomla! bricht hier aber nicht ab, sondern beendet seine Prüfrunde, um die Erlaubnis sicherzustellen. Denn wäre diese Berechtigung an irgendeiner höheren Stelle auf Verweigert gestellt, würde diese Moderator-Konfiguration ignoriert werden. Den aktuellen Status der Rechterecherche von Joomla! erkennen Sie übrigens immer in der Spalte Errechnete Einstellung. Egal in welchem Berechtigungsformular Sie sich gerade befinden, der hier dargestellte Status berücksichtigt alle vererbten und direkt eingestellten Rechte. Auf den kommenden Seiten finden Sie noch weitere Beispiele zur Veranschaulichung.
Hinweis: Besondere Behandlung der Benutzergruppe »Öffentlich«
Sämtliche Berechtigungen der Benutzergruppe Öffentlich sind auf Vererbt gesetzt, aber woher erbt diese oberste Benutzerebene eigentlich? In diesem Fall erfahren die Rechte für Öffentlich eine besondere Behandlung. Aus Vererbt wird dabei standardmäßig Verweigert – erkennbar an der Spalte Errechnete Einstellung.
Die Hierarchie der Benutzergruppen kennen Sie aus dem vorangegangenen Abschnitt; die verschiedenen Berechtigungskonfigurationen werden auf den folgenden Seiten vorgestellt, aber um welche Rechte geht es hier überhaupt?
-
Seitenanmeldung (nur global): Einloggen ins Frontend
-
Adminanmeldung (nur global): Einloggen ins Backend; dem Benutzergruppenzweig Registriert, Autor, Editor, Publisher sowie den öffentlichen Gruppen Öffentlich und Gast ist der Zugang strikt untersagt.
-
Offlinezugang (nur global): Einloggen ins Frontend, während die Website sich im Offline-/Wartungsmodus befindet (System • Konfiguration • Reiter Site • Feld Website offline)
-
Super Benutzer (nur global): unbegrenzte Konfiguration der gesamten Joomla!-Website
-
Konfigurieren (pro Komponente): Erlaubt die Konfiguration einer bestimmten Komponente, z. B. über System • Konfiguration • Komponente in der linken Seitenleiste.
-
Administrationszugriff: Zugriff auf die Administrationsoberfläche und all ihrer Komponenten im Backend. Um dort etwas zu verändern, z. B. einzelne Komponenten aus den Menüs auszublenden, ist eine Konfiguration pro Komponente notwendig.
-
Erstellen: Erzeugen neuer Elemente
-
Löschen: Löschen von Elementen
-
Bearbeiten: Bearbeiten von Elementen, egal, wer der Autor ist (z. B. für einen Editor/Lektor)
-
Status bearbeiten: Verändern des Status eines Elements, z. B. zum Veröffentlichen oder Archivieren von Beiträgen
-
Eigene Inhalte bearbeiten: Bearbeiten eigener Elemente; ausgeschlossen sind also Elemente anderer Autoren.
Tipp: Erstellen Sie vor größeren Berechtigungsupdates ein Backup
Um die Rechte für Benutzergruppen exakt zu setzen, müssen Sie u. U. an vielen Schräubchen im Backend drehen. Da passiert es gerne, dass man gerade eine Benutzergruppe fertigkonfiguriert hat, um festzustellen, dass es für sie die falsche Komponente war. Joomla! merkt sich nämlich nach dem Speichern nicht immer, welche Benutzergruppe man gerade bearbeitet hatte, wenn man zwischen der globalen und komponenten-individuellen Rechtekonfiguration springt, sondern blendet zunächst die Öffentlich-Rechte ein.
11.3.1 Globale Berechtigungen
Am oberster Stelle der Berechtigungshierarchie stehen die globalen Rechte, die Sie über System • Konfiguration • Reiter Berechtigungen erreichen (siehe Abbildung 11.10).
Diese Ebene ist genau die richtige für die Konfiguration der Benutzergruppe Auditorium, die Backend-Zugriff erhält, dort aber nichts verändern darf.
-
Grundsätzlichen Zugriff auf das Backend erhält diese Gruppe über System • Konfiguration • Reiter Berechtigungen: • Benutzergruppe Auditorium • Adminanmeldung auf Erlaubt.
Mitglieder des Auditoriums können sich jetzt einloggen, das Backend ist aber leer, da die Gruppe ihre Rechte aus der Gruppe Registriert erbt; einfache Frontend-Benutzer, die niemals über Backend-Rechte verfügen sollten. Das ist Absicht, denn für das Auditorium werden die Backend-Rechte sehr gezielt und vorsichtig gesetzt.
-
Um außerdem die Administrationsoberfläche im Backend zu sehen, stellen Sie System • Konfiguration • Reiter Berechtigungen • Benutzergruppe Auditorium • Administrationszugriff auf Erlaubt. Die komponenten-individuellen Einstellungen für die neue Gruppe Auditorium sind standardmäßig auf Vererbt gestellt. Damit erben alle Komponentenberechtigungen den eben eingestellten erlaubten Zugriff, die Auditoriums-Benutzer dürfen aber trotzdem nichts konfigurieren.
Zusammengefasst sehen Sie die neue Rechtekonfiguration in Abbildung 11.11.
Mehr Rechte benötigt das Auditorium nicht im Backend. Falls Sie dieses Szenario an Ihrem Rechner durchspielen und jetzt keine Elemente in der Adminoberfläche sehen, liegt das noch an einer letzten Einstellung. Stellen Sie sicher, dass die Zugriffsebene Spezial auch die Benutzergruppe Auditorium enthält (Menü Benutzer • Zugriffsebenen • Spezial bearbeiten • Häkchen bei Auditorium setzen). Loggen Sie sich mit Ihrem Testbenutzer dann aus und wieder ein.
Tipp: Prüfen Sie die neuen Berechtigungen in einem anderen Browser
Bei der Konfiguration der Berechtigungen empfiehlt es sich, jeden Schritt zu überprüfen. Dazu öffnen Sie am besten einen anderen Browser und loggen sich dort unter den Anmeldedaten des Benutzers ein, an dessen Benutzergruppenrechten Sie gerade arbeiten. Ein neuer Tab im aktuellen Browser funktioniert leider nicht, da die Tabs sich das Anmelde-Cookie teilen, Sie sehen also immer die Administrationsoberfläche des Super Benutzers.
Info: Beitragsformatierung über Benutzergruppen einschränken
In der globalen Konfiguration finden Sie neben den allgemeinen Einstellungen der Berechtigungen auch den Reiter Textfilter, der eine Feinjustierung der Formatierungsoptionen beim Anlegen von Inhaltselementen (z. B. Beiträgen) ermöglicht. Pro Benutzergruppe, in diesem Formular Filtergruppe genannt, wählen Sie eine der folgenden Einstellungen:
-
Standard Blacklist: Verbietet eine Liste von HTML-Elementen, die ohnehin nichts in Inhaltselementen verloren haben, z. B. applet, body, html, object, script. Die vollständige Liste finden Sie unter dem Konfigurationsformular.
-
Eigene Blacklist: Erweitern Sie die Standard Blacklist über die Spalten Elemente filtern und Attribute filtern. Verbieten Sie damit z. B. Tabellen (table) oder HTML-Bereiche (div, span).
-
Whitelist: Entgegen der Blacklist erlaubt eine Whitelist die Verwendung der angegebenen Elemente und Attribute.
-
Kein HTML: Verbietet sämtliche HTML-Tags.
-
Keine Filterung: Erlaubt alle HTML-Tags.
Die voreingestellten Werte sind für die meisten Content-Management-Konzepte etwas lapidar eingestellt. Denn die Verwendung von HTML-Tags ist in den meisten Anwendungsfällen auf eine Handvoll Absatz- und Zeichenformate eingeschränkt, damit Contentpfleger sich nicht zu stark von den Designrichtlinien und dem Brandguide entfernen. Nutzen Sie dann dieses Formular, um die Verwendung der HTML-Tags pro Benutzergruppe Autor, Editor und Publisher zu konfigurieren. Beachten Sie auch, dass sich neben dieser Textfilterung auch die Konfiguration der angezeigten Buttons im TinyMCE-Editor steuern lässt, siehe Abschnitt 8.2, »Editor konfigurieren«.
11.3.2 Berechtigungen auf Komponentenebene
Eine Ebene tiefer erfolgt das Setzen der Berechtigungen pro Komponente. Diese Einstellungen finden Sie über System • Konfiguration • Komponente (Seitenleiste links) • Reiter Berechtigungen ganz rechts außen. Das gilt für fast alle Komponenten, denen Sie in der Standardinstallation von Joomla! begegnen, später aber auch für viele zusätzlich installierte Erweiterungen. So richten Sie beispielsweise besondere Backend-Administratoren ein, die nur den Cache löschen und Joomla!-Updates durchführen. Oder Sie schalten die Backend-Administration für Herausgeber (Publisher) frei und erlauben ihnen neben ihrer redaktionellen Tätigkeit im Frontend auch die erweiterte Organisation von Beiträgen, Schlagwörtern, Newsfeeds und Medien. Die Kombinationsmöglichkeiten sind zahlreich.
Für das Reiseforum ist das ideal, um die Benutzergruppe Moderator auch tatsächlich auf die Verwaltung der Kategorien und Beiträge einzuschränken. Alle anderen Komponenten werden nun rigoros deaktiviert:
-
Bearbeiten Sie nacheinander alle Komponenten, die in der linken Spalte unter System • Konfiguration erscheinen. Banner, Cache, Freigeben, Kontakte etc., außer Beiträge.
-
Wechseln Sie dazu jeweils zum Reiter Berechtigungen, und wählen Sie die Benutzergruppe Moderator aus der Liste. Hinweis: Meist merkt sich Joomla!, dass Sie zuletzt die Rechte der Gruppe Moderator bearbeiteten, und öffnet diese Berechtigungen auch wieder in der nächsten Konfiguration. Verlassen Sie sich aber nicht darauf, und prüfen Sie immer wieder, ob Sie gerade Einstellungen in der richtigen Gruppe vornehmen. Nachträglich Dutzende von Berechtigungen zu korrigieren ist aufwendig und ärgerlich.
-
Stellen Sie den Schalter Administrationszugriff auf Verweigert. In der Spalte Errechnete Einstellung erscheint jetzt statt Erlaubt (das Managererbe) Nicht erlaubt. Sie erinnern sich an die Liste am Anfang dieses Abschnitts: Administrationszugriff regelt nicht das Login in den Backend-Bereich, sondern die Anzeige der Backend-Oberfläche, der Komponente und Menüs.
-
Speichern Sie das Formular, und fahren Sie mit der nächsten Komponente fort.
Prüfen Sie oft das Ergebnis Ihrer Bemühungen, verschwinden nun nach und nach die Menüeinträge der verweigerten Komponenten. Am Ende ist das Backend-Menü des Moderators so aufgeräumt, dass er ausschließlich die Einträge sieht, an denen er arbeiten darf (siehe Abbildung 11.12).
11.3.3 Berechtigungen auf Kategorie- und Beitragsebene
Im speziellen Fall der Komponente Beiträge, also der Haupt-Inhaltselemente, lassen sich Berechtigungen noch feingranularer setzen, schließlich ist Joomla! ein Content-Management-System. So ist es möglich, verschiedenen Benutzergruppen bestimmte Resorts zuzuordnen (Kategorien), so wie im Reiseforum die Moderatoren für die Verwaltung der Reiseberichte zuständig sind.
Die Berechtigungsverwaltung für einzelne Kategorien und Beiträge finden Sie im jeweiligen Manager. Sobald Sie eine Kategorie oder einen Beitrag bearbeiten, wechseln Sie auf den rechten Reiter Berechtigungen, um das jeweilige Element gezielt zu konfigurieren.
Beachten Sie auch hier: Bei diesen Einstellungen werden Sie vornehmlich Benutzergruppen einzelner Kategorien oder Beiträge verbieten, sodass die übrigen Kategorien/Beiträge das Erlaubt-Recht erben. Umgekehrt, also global die Bearbeitung zu verbieten und dann gezielt wieder pro Kategorie/Beitrag zu erlauben, das lässt Joomla! nicht zu. Denn wurde in einer höheren Berechtigungshierarchie einmal ein Element auf Verweigert gestellt, gilt das unumstößlich für alle untergeordneten Ebenen.
Beim Reiseforums-Moderator, zuständig für die Beitragskategorie Reiseberichte, ist der Berechtigungspfad gut nachvollziehbar. Abbildung 11.13 zeigt den Pfad für das Bearbeitungsverbot von Urlaubszielen.
Tipp: Benutzer- und Benutzergruppenrechte debuggen
Aktivieren Sie den Debugging-Modus unter System • Konfiguration • Reiter System • Feld System debuggen, erscheint unter jedem Element der Benutzerverwaltung (Benutzer, Benutzergruppen) ein neuer Link Debug: Berechtigungsbericht. Hinter ihm versteckt sich eine umfangreiche Matrix aller mit Rechten versehenen Joomla!-Elemente und der jeweiligen Berechtigungen. Auf diese Weise lassen sich detaillierte Rechteszenarios einzelner Benutzer oder Benutzergruppen nachvollziehen.
11.3.4 Problembehandlung bei unwirksamen Berechtigungsänderungen
Nach dem Anpassen von Berechtigungen genügt es manchmal nicht, im Frontend nur (F5) oder (Strg) + (F5) (OS X: (cmd) + (R) bzw. (cmd) + (ª) + (F5)) zu drücken, um die Seite neu zu laden. Loggen Sie sich in Fällen, in denen Sie sich sicher sind, dass eine Änderung sichtbar sein sollte, aus und wieder ein – das Allheilmittel für viele IT-Probleme (IT-Crowd für eine kurze Kaffeepause: http://tinyurl.com/jh-itcrowd).
Sind die Änderungen immer noch nicht sichtbar, probieren Sie es mit den folgenden Tricks:
-
Cookies löschen
Im Firefox geht das unter Menü Einstellungen • Reiter Datenschutz • Link einzelne Cookies klicken. In Chrome unter Menü Einstellungen • nach unten scrollen und auf Erweiterte Einstellungen anzeigen klicken • Datenschutz • Button Inhaltseinstellungen.... • im Popup den Button Alle Cookies und Websitedaten… aktivieren. Geben Sie jetzt einen Teil Ihres Domain-Namens als Suchbegriff ein, und klicken Sie den Button zum Löschen. -
Grundsätzlich im Privat-/Inkognito-Modus arbeiten
In diesem Modus entfernen die Webbrowser alle Daten (Cookies, Sessions) etc. nach Schließen des Browserfensters. So stellen Sie sicher, dass beim nächsten Aufruf keine gecachten Konto- oder Anmeldedaten dazwischenfunken, Sie browsen also wie auf einem frisch installierten System.
Haben Sie unerwarteterweise das Problem, dass sich ein Benutzer, an dessen Rechten Sie arbeiteten, nicht mehr einloggen kann, ist u. U. in der Datenbank etwas mit seinem Passwort durcheinandergekommen. Setzen Sie dann über Benutzer • Verwalten • Klick auf den Benutzernamen ein neues Passwort als Teil des Standard-Problemlösungsszenarios.