Benutzerrechte und Rechte im Seitenbaum: Rechtevergabe im TYPO3-Backend
Bei einer neu erstellten TYPO3-Website ist zunächst nur ein einziger Nutzer vorhanden, der Administrator. Dieser hat im Vorfeld die Seitenstruktur erstellt und erste Inhalte eingepflegt. Weitere Backend-Benutzer, an die Aufgaben delegiert werden können, müssen erst angelegt werden. Statt hierfür neue Einzelnutzer zu erzeugen, ist es sinnvoller, Benutzergruppen zu definieren, da dies die anschließende Rechtevergabe übersichtlicher macht.

Abbildung 1: Datensätze für Backend-Benutzergruppen (links) und Verzeichnisfreigaben (rechts) erzeugen.
Nutzer und Benutzergruppen sind datentechnisch der Wurzel der Website zugeordnet. Man erzeugt sie daher ausgehend von der Weltkugel (Kontextmenü->Neu; Abb. 1). Wir gehen in diesem Tutorial davon aus, dass drei Gruppen benötigt werden: Chefredakteure, Redakteure und Newsredakteure. Chefredakteure erhalten Zugriff auf die gesamte Website und sind mit umfassenden Rechten ausgestattet, die beiden anderen Gruppen sollen jeweils nur einen Teil der Site bearbeiten können(Abb. 2). Legen Sie zunächst die Gruppen an und erzeugen Sie im Fileadmin die drei Ordner „chefs“, „news“ und „redakteure“, die als Datenablage dienen.
Damit die eben erstellten Ordner den Gruppen zugewiesen werden können, werden sie im Rahmen so genannter „Verzeichnisfreigaben“ eingebunden (Erzeugung über Weltkugel; Abb. 1 rechts). Erstellen Sie eine Verzeichnisfreigabe für jeden Ordner, indem Sie den Ordnernamen im Feld „Pfad“ angeben. Bestimmen Sie die Pfadbasis als „relativ zum Fileadmin“ (Abb. 3). Achten Sie auf die Korrektheit des Pfads! Es wird nicht geprüft, ob ein Ordner existiert. Als Bezeichnung der Freigabe verwenden Sie den Gruppennamen.
Nun sollen die Rechte der Gruppen festgelegt werden. Wechseln Sie nach „Web->Liste“ und klicken Sie auf das Icon einer Gruppe, um sie zu bearbeiten (wir beginnen mit den Redakteuren). Die Eingabemaske ist in mehrere Bereiche („Reiter“) unterteilt, von denen für uns derzeit nur „Zugriffsrechte“ und „Freigaben und Arbeitsumgebungen“ von Interesse sind.
Zugriffsrechte
Die Zugriffsrechte betreffen die Konfiguration der Backendoberfläche und die einsetzbaren Module. Wählen Sie, um Einstellungen vorzunehmen, die Option „Zugriffslisten miteinschließen“. Die ersten fünf Listenfelder sind „Positivlisten“, das heißt die hier gewählten Funktionen stehen der Gruppe anschließend zur Verfügung. In „Module“ bestimmen Sie die Zusammensetzung der Hauptmenüleiste (Beachten Sie, dass Sie stets das Hauptmodul einschließen müssen, wenn Sie ein Untermodul freigeben möchten.).
Die beiden Felder „Tabellen (anzeigen)“ und „Tabellen (ändern)“ geben lesenden oder schreibenden Zugriff auf die jeweiligen Datenbanktabellen. „Seitentypen“ erlaubt das Erstellen der gewählten Seitentypen und „Erlaubte Ausschlussfelder“ bestimmt die Zusammensetzung der Eingabemasken (abgesehen von stets vorhandenen Pflichtfeldern).
Geben Sie den Redakteuren die Module „Web“, „Web->Seite“, „Web->Liste“, „Web->Funktionen“ sowie „Datei“ und „Datei->Dateiliste“. Erlauben Sie schreibenden Zugriff auf die Tabellen „Seite“ und „Seiteninhalt“ und gestatten Sie die Seitentypen „Standard“, „Verweis“ und „Link zu externer URL“. Geben Sie bei den erlaubten Ausschlussfeldern der Einfachheit halber alle Felder mit dem Präfix „Seite:“ und „Seiteninhalt:“ frei.
Eine „Negativliste“ stellt der Block „Feldwerte explizit erlauben/verbieten“ dar (Abb. 5), in dem Sie der Gruppe Erlaubnisse zum Anlegen von Inhaltstypen explizit entziehen können. Redakteure sollen die Inhalte „Formular“, „Suchen“, „Anmeldung“, „Menü/Sitemap“, „Plugin“, „Skript“, „Trenner“, „HTML“ sowie das Plugin „News“ nicht einsetzen. Wählen Sie diese also für die Verbotsliste aus.
Freigaben und Arbeitsumgebungen
In „Freigaben und Arbeitsumgebungen“ werden der Bereich des Seitenbaums, der bearbeitet werden darf,bestimmtsowie Bereiche im Fileadmin genannt, in denen Daten abgelegt werden können. Wählen Sie über den Elementbrowser im Feld „Datenbankfreigaben“ für die Redakteure die Seite „Themen“ als Einstiegspunkt („Webmount“) in den Seitenbaum. Dies erlaubt die Bearbeitung dieser Seite inklusive Unterseiten sowie das Anlegen weiterer Seiten in diesem Zweig.
Im Feld „Verzeichnisfreigaben“ stehen alle erstellten Freigaben zur Auswahl. Wählen Sie „Redakteure“. Hiermit gestatten Sie den Zugriff auf den entsprechenden Ordner im Fileadmin. Speichern Sie nun die Gruppeneinstellungen.
Die Einstellungen der anderen beiden Gruppen
Analog gehen Sie nun für die Chefredakteure und die Newsredakteure vor. Die Chefredakteure erhalten pauschal alle Zugriffsrechte und keinen Ausschluss von Inhaltstypen. Als Webmounts wählen Sie die Seite „Root“ und zusätzlich den Sysfolder „News“, in dem Newsmeldungen abgelegt werden. Weisen Sie den Chefs alle bestehenden Verzeichnisfreigaben zu.
Die Newsredakteure brauchen die Module „Web“, „Web->Liste“, „Date“ und „Datei->Dateiliste“ sowie außerdem schreibenden Zugriff auf die Tabellen „News“ und „Newskategorien“. Der Ausschluss von Inhalten ist irrelevant, da lediglich News bearbeitet werden. Teilen Sie der Gruppe in den erlaubten Ausschlussfeldern alle Einträge mit dem Präfix „News:“ zu. Einziger Webmount ist der Sysfolder „News“. Abschließend weisen Sie den Newsredakteuren noch „ihren“ Ordner im Fileadmin zu.
Erzeugen Sie nun drei exemplarische Einzelnutzer (im Beispiel „carlo“ als Chefredakteur, „rudi“ als Redakteur und „norbert“ als Newsredakteur) und weisenSiejedem eine der administrativen Gruppen zu. In „Admin-Werkzeuge->Verwaltung“ sehen Sie eine Liste der angelegten Nutzer. Klicken Sie die Checkboxen „Gruppenzugehörigkeit“ und „Webmounts“ an, um auch die jeweilige Gruppe und den Seitenbaumeinstieg anzeigen zu lassen.
Den Zugriff auf den Seitenbaum erlauben
Wenn Sie aus dem Administrator-Account in den eines der angelegten Einzelnutzer wechseln, sehen Sie, dass diese trotz zugewiesener Mountpoints im Seitenbaum die ihnen zugedachten Seiten nicht sehen können (der Zugriff auf den Fileadmin klappt hingegen). Der Grund: TYPO3 verwaltet Zugriffsrechte auch noch auf einer anderen Ebene, nämlich in Form der „Seitenbaumrechte“. Ähnlich wie in Unix üblich, „gehört“ ein Seitendatensatz nämlich dem Ersteller (und seiner Benutzergruppe). Bislang wurden alle Seiten vom Administrator angelegt, der keiner Gruppe angehört. Auf Ebene dieser Gruppenrechte wird nun eingegriffen. Wechseln Sie in das Modul „Web->Zugriff“ und gehen Sie in den Bereich „Rechte“.
Hier tritt ein Problem auf: Gruppenrechte können nur einmal vergeben werden. Es sind jedoch drei Gruppen vorhanden. Natürlich könnte man die Baumrechte partiell zuweisen, zum Beispiel „Themen“ an die Redakteure, den Ordner „News“ an die Newsredakteure, den Rest an die Chefs. Die Chefs könnten jedoch die den anderen Gruppen zugewiesenen Bereiche weder sehen noch bearbeiten (Abb. 6, links). Lösbar ist dies, indem man die „Redakteure“ und „Newsredakteure“ zu Untergruppen der „Chefredakteure“ erklärt, womit diese deren Rechte „erben“ (Gruppeneinstellungen, Bereich „Allgemein“). Das funktioniert soweit.
Leider handelt man sich hiermit Probleme einer ganz anderen Kategorie ein.
Untergruppen und die Vermischung von Rechten
Wie gewünscht, erhalten die Chefredakteure über ihre Untergruppen die Rechte an den Seitenbaumbereichen dieser Gruppen. Jedoch auch bei den Backendrechten wirken sich Untergruppen aus. Erinnern wir uns an die Positiv- und Negativlisten bei der Vergabe der Rechte: In der Tat erbt die Hauptgruppe von der Untergruppe auch deren Backend-Erlaubnisse, Webmounts und Dateifreigaben. Dies führt dazu, dass ein Chefredakteur neben seinem Teil des Seitenbaums redundant auch den Mount „Themen“ (der Redakteure) sieht (Abb. 6, Mitte).
Das könnte noch als „lästig, aber verschmerzbar“ toleriert werden. Ärgerlich ist, dass sich auch die Negativlisten der Inhaltsausschlüsse addieren – und zwar, indem für die Untergruppe ausgeschlossene Typen auch für die Hauptgruppe ausgeschlossen bleiben, ohne dass dies irgendwie rückgängig gemacht werden könnte. Der Chefredakteur kann plötzlich keine Plugins mehr einfügen, da dies den Redakteuren verboten wurde. Dies ist nicht akzeptabel. Es gibt aber noch einen weiteren Grund, nach einer anderen Lösung zu suchen.
Eine weitere Gruppe für die Seitenbaumrechte
Sobald mehrere Gruppen damit beginnen, Seiten zu erstellen, wird auch die Rechtelage im Baum schnell unübersichtlich: Eine neue Seite bekommt, wie bereits angedeutet, die Gruppenrechte der Hauptgruppe des Erstellers zugewiesen. Ein Redakteur beispielsweise „sieht“ die vom Chef erstellte Seite „Thema3“ ohne nachfolgende Rechteänderung zunächst nicht, denn diese „gehört“ den Chefredakteuren (Abb. 7). Auch dieser Umstand ist zumindest lästig.

Abbildung 7: Die neue Seite „Thema 3“ gehört den Chefredakteuren, nur diese können sie sehen und bearbeiten.
Es ist zum einen wünschenswert, dass eine Besitzergruppe für neue Seiten automatisch festgelegt werden kann und zum anderen,dassjede Benutzergruppe auf neue Seiten Zugriff erhält, sofern sie sich innerhalb deren Mountbereichs befinden. Es soll also ein Chefredakteur eine Seite anlegen können, die ein Redakteur im Anschluss bearbeiten können soll, ohne dass weitere Maßnahmen erforderlich sind.
Zur Lösung des Problems führen wir eine neue Hilfsgruppe ein, deren Sinn ausschließlich darin besteht, die Seitenbaumrechte zu besitzen. Diese Gruppe erhält keine Backendrechte und auch keine Mountpoints und Verzeichnisfreigaben zugewiesen. Eine solche „neutrale“ Gruppe kann jeder der anderen Gruppen als Untergruppe zugewiesen werden, ohne dass (wie zuvor gezeigt) auf der Ebene der Backendrechte Vermischungen auftreten. Die Untergruppe gibt an ihre Hauptgruppe jedoch – und dies ist der eigentliche Clou – die Rechte am Seitenbaum weiter.
Erstellen Sie nun eine neue Gruppe namens „Seitenbaumrechte“. Weisen Sie ihr keine weiteren Eigenschaften zu, erteilen Sie ihr aber über das Modul „Web>Zugriff“ rekursiv ab „Root“ die Rechte am Seitenbaum (Vergessen Sie dabei nicht eventuelle Sysfolder für News etc.!). Weisen Sie die neue Gruppe nun jeder einzelnen der restlichen Gruppen als (einzige) Untergruppe zu.
Anschließend haben die Mitglieder der administrativen Gruppen erneut Zugriff auf den Seitenbaum, ohne dass eine Vermischung von Rechten oder ungewollte Addition von Mountpoints erfolgt (Abb. 6, rechts). Nun gilt es lediglich, noch das Eigentumsproblem neu erstellter Seiten zu lösen.
Eigentumsverhältnisse neuer Seiten
Die Rechte am Seitenbaum müssen im „Seitenkontext“ festgelegt werden, also nicht auf Benutzer- oder Gruppenebene und ebenfalls nicht im Rahmen der Seitentemplates. Die Eingabe des folgenden TypoScripts (siehe Listing 1) erfolgt daher in den Eigenschaften eines Seitendatensatzes (in „Optionen“). Hier bietet sich die Seite „Root“ an, da die Konfiguration sich anschließend auf den gesamten Seitenbaum vererbt. Auf einer neu erstellten Seite „Thema4“ liegen nun von Anfang an die gewünschten Rechte (Abb. 8).
# Setzen der Seitenbaumrechte per TypoScript TCEMAIN { # Besitzergruppe festlegen (ID der Gruppe „Seitenbaumrechte“): permissions.groupid = 4 # Rechte Besitzer: permissions.user = show, editcontent, edit, delete, new # Rechte Besitzergruppe: permissions.group = show, editcontent, edit, delete, new # Rechte "everybody" (kann ungesetzt bleiben): permissions.everybody = }
Listing 1
Dieses Tutorial bietet einen inhaltlichen Ausblick auf das Buch „Einstieg in TYPO3 4.3“ von Frank Bongers und Andreas Stöckl, das in Kürze bei Galileo Press erscheint [1]. Einen anderen, hochinteressanten Ansatz zum Thema beschreibt Daniel Pötzinger in der t3n-Ausgabe Nr. 4 [2].
Mich wundert, warum unter dem Punkt „Untergruppen und die Vermischung von Rechten“ ein wesentlicher Punkt ausgelassen wurde.
Während Herr Bongers sich über die Vermischung der Negativlisten der Inhaltsausschlüsse beklagt, gibt es eine sehr einfache Methode, dieses Problem elegant zu lösen:
Im Install-Toll ist die Direktive [BE][explicitADmode] von „explicitDeny“ (Default-Wert) auf „explicitAllow“ zu setzen.
VORSICHT: Damit werden alle bisher gemachten Eintragungen in diesen Feldern gelöscht.
Anschließend kann ganz einfach definiert werden, für welche Inhaltselemente die Bearbeitung freigeschaltet wird.
Dieses Verfahren hat noch einen zweiten, wesentlichen Vorteil:
Im Standardmodus („explizit Allow“) sind neue Inhaltselemente und Plugins von Erweiterungen zunächst IMMER für alle Benutzer freigeschaltet. Nach jedem neu installierten Plugin müssen diese Anpassungen überall erneut vorgenommen werden. Vor allem dann, wenn die Redakteure gar keinen Zugriff darauf haben sollen.
Mit der neuen Methode entfällt dies, weil die Elemente zunächst NICHT für Redakteure bearbeitbar sind.
Was mich interessieren würde ist ob einzelne Seiten der Benutzergruppe freigeschaltet werden können und wie?