Rechteverwaltung im Backend

Dieser Artikel stellt Ihnen ein Konzept vor, das sich auch in großen TYPO3-Projekten mit mehreren hundert Benutzern, wie dem Intranet der „Deutschen Welle“, bewährt hat.

Problemstellung an einem Beispiel

Um das vorzustellende Konzept besser erklären zu können, soll der abgebildete Seitenbaum als Beispiel dienen. Unser Testprojekt beinhaltet demnach neben der Startseite mit allgemeinen Neuigkeiten vier weitere Seitenbereiche verschiedener Abteilungen.

Beispielhafte Seitenstruktur mit zugehörigen Seiten-Gruppen und entsprechenden TSConfig

Beispielhafte Seitenstruktur mit zugehörigen Seiten-Gruppen und entsprechenden TSConfig

Die Anforderung besteht darin, dass die verschiedenen Abteilungen nur das Recht haben, ihren eigenen Seitenbereich zu pflegen, es aber auch Redakteure gibt, die alle Abteilungsseiten pflegen dürfen. Auch innerhalb der Abteilungen soll es eine Aufgabenteilung geben: Einige Benutzer sind nur für die Eingabe von Neuigkeiten zuständig, andere für das Pflegen bestimmter Inhalte und wieder andere sollen auch Seiteninhalte, wie beispielsweise Plugins, einfügen dürfen.

Verschiedener Typen von Backend-Benutzergruppen

Um im Backend eine übersichtliche und wartungsfreundliche Vergabe von Berechtigungen zu haben, gruppieren wir verschiedene Berechtigungsarten. Dafür werden mehrere Typen von Benutzergruppen im Backend unterschieden, jeder Typ steht für eine bestimmte Aufgabe. Die eigentlichen Nutzerberechtigungen eines Redakteurs setzen sich schließlich aus der Zugehörigkeit zu mehreren Gruppen zusammen. Das hat nicht nur den Vorteil, später neue Benutzer schneller einpflegen zu können, sondern folgt auch dem Grundsatz, möglichst redundanzfrei zu sein. Das verringert späteren Wartungsaufwand.

Um die Übersicht zu bewahren, sind die Backend-Nutzergruppen durch entsprechende Kürzel vor dem Namen gekennzeichnet. Es werden die folgenden Typen unterschieden, auf die im Folgenden näher eingegangen wird:

  • Seiten-Mount-Gruppen (Kennzeichnung „SM:“)
  • File-Mount-Gruppen (Kennzeichnung „FM:“)
  • Rechtegruppen (Kennzeichnung „R:“)
  • TSConfig-Gruppen (Kennzeichnung „TS:“)
  • Seitengruppen (Kennzeichnung „S:“)
  • Metagruppen (Kennzeichnung „META:“)

Seiten-Mount-Gruppen

Diese Gruppen werden mit den Zeichen „SM:“ am Anfang des Namens versehen, und wir legen fest, welchen Ausgangspunkt man im Seitenbaum schließlich angezeigt bekommt. In diesen Gruppen wird also lediglich der Ausgangspunkt unter der Einstellung „DB Mount“ gesetzt. Der Name einer Seiten-Mount-Gruppe sollte dem Namen des ausgewählten Ausgangspunktes entsprechen. Für unser Beispiel benötigen wir demnach die Seiten-Mount-Gruppen „SM: alle Abteilungen“ sowie jeweils eine Seiten-Mount-Gruppe für die Abteilungsseiten.

File-Mount-Gruppen

Mit diesen Gruppen fassen wir lediglich Dateifreigaben („File Mounts“) zusammen und legen somit fest, welche Ordner letztlich für einen Benutzer sichtbar sind. Verwendet man die DAM-Erweiterung, wählt man die entsprechenden DAM-Kategorien für die Nutzergruppe aus. Für unser Beispiel benötigen wir jeweils eine File-Mount-Gruppe für die Abteilungen. Wir legen also zunächst Ordner im Dateisystem und die zugehörigen Dateifreigaben an und ordnen die Dateifreigaben den entsprechenden FM-Gruppen zu. Außerdem legen wir eine Gruppe „FM: Presse“ an, mit der man Zugriff auf verschiedene allgemeine Presseordner erhält.

Um uns später noch etwas Arbeit zu ersparen, legen wir auch noch eine Gruppe „FM: alle Ordner“ an, der wir alle Dateifreigaben der Abteilungen zuordnen. Diese Vorgehensweise hat auch den Vorteil, dass bei späteren Änderungen in der Dateiberechtigung lediglich die entsprechende Gruppe editiert werden muss.

Rechtegruppen

In diesen Gruppen legen wir die eigentlichen Rechte im Backend fest, dazu gehören die Einstellungen, welche man nach Aktivieren der Checkbox „Include Access Lists“ zur Verfügung hat. Im Einzelnen sind dies:

  1. Festlegen der sichtbaren Module im Backend-Menü – hier werden jeweils nur die ausgewählt, welche für die vorgesehene Aufgabe der Rechtegruppe benötigt werden
  2. Festlegen der Tabellen und Felder, welche der Benutzer später sehen und editieren darf
  3. Verbieten nicht benötigter Erweiterungen und Seiteninhalte
  4. Eventuelle Einschränkungen auf bestimmte Sprachen.

Für unser Beispiel legen wir drei Rechtegruppen an: die Gruppen „R: Newseditor“, „R: einf. Redakteur“ und „R: erweit. Redakteur“. Auch hier ist es durchaus möglich, beim Anlegen neuer Rechtegruppen auf den Vorhandenen aufzubauen. Beispielsweise könnte eine Gruppe „R: Redakteur+News“ die beiden Gruppen „R: Newseditor“ und „R: einf. Redakteur“ zusammenfassen.

TSConfig-Gruppen

In diesen Gruppen stellen wir eventuell benötigte TSConfig-Einstellungen für Nutzer zusammen. Dies kann man beispielsweise nutzen, um Einstellungen zum Adminpanel zusammenzufassen. Je nach Umfang und Anforderung des Projektes kann es sein, dass sich das Anlegen dieser Gruppen gar nicht lohnt oder es günstiger ist, eventuelle TSConfig-Einstellungen in die Rechtegruppen zu integrieren.

Seitengruppen

Die Seitengruppen werden durch die Zeichen „S:“ am Beginn des Namens gekennzeichnet. Sie dienen der Verwaltung der Zugriffsberechtigungen im Seitenbaum, regeln also das Zusammenspiel mit den Berechtigungen auf Seitenebene. Diese Gruppen haben also selbst keine Einstellungen, sondern dienen der Rechtevergabe über das Modul „Zugriff“ im Seitenbaum. Das heißt, dass eine Seite im Seitenbaum immer zu einer Seitengruppe gehören sollte. Die Seitengruppen müssen sich an der Ordnung im Seitenbaum orientieren und sollten im Normalfall dieselbe Hierarchie aufbauen. Man kann folgende Regeln definieren:

  1. Eine Seitengruppe steht für einen bestimmten Seitenbereich im Seitenbaum. Die entsprechende Seite sowie ihre Unterseiten sollten dieser Gruppe angehören. Die entsprechende Einstellung ist mit dem Modul „Zugriff“ zu tätigen.
  2. Seitengruppen genauso benennen wie die zugehörige Seite.
  3. Eine Zeile TSConfig im Header der entsprechenden Seite sorgt dafür, dass auch neu angelegte Seiten automatisch der richtigen Seitengruppe zugeordnet werden.
  4. Man benötigt mindestens so viele Seitengruppen, wie man Einstiegspunkte für Redakteure in den Seitenbaum haben möchte.
  5. Eine Seitengruppe sollte die Seitengruppen, die in der korrespondierenden Seiten-Hierarchie direkt unterhalb sind, als Untergruppen beinhalten. Damit baut man dieselbe Ordnung wie im Seitenbaum auf und Benutzer, die einer übergeordneten Seitengruppe angehören, sind berechtigt auch Seiten der darunter liegenden Redaktionseinheit zu pflegen.

Für unser Beispiel bedeutet das, dass wir jeweils eine Seitengruppe für eine Abteilung anlegen sowie die Seitengruppe „S: alle Abteilungen“, welche die anderen Seitengruppen als Untergruppen enthält.

Die Seiten-Gruppe „S: alle Abteilungen“ enthält die untergeordneten Seiten-Gruppen.

Die Seiten-Gruppe „S: alle Abteilungen“ enthält die untergeordneten Seiten-Gruppen.

Anschließend setzen wir die entsprechenden Zugriffe auf Seitenebene und ergänzen in den entsprechenden Seiten den benötigten TSConfig Code. In der Hauptseite „Testprojekt“ nehmen wir allgemeine Einstellungen vor und setzen die Gruppe für neu angelegte Seiten auf „S: Testprojekt“:

TYPOSCRIPT - USER SETUP
TCEMAIN {
#allgemeine Berechtigung für neue Seiten
permissions.group=show,edit,delete,new,editcontent
# gruppe für neu angelegte Seiten = "S: Testprojekt" :
permissions.groupid = 1
}
Listing 1

Für alle anderen Seiten, denen Seitengruppen zugeordnet sind, setzen wir analog die Gruppenzuordnung für neu angelegte Seiten:

TYPOSCRIPT - USER SETUP
TCEMAIN.permissions.groupid = 3
Listing 2

Gruppen durch META-Gruppen zusammenfassen

Ein Backend-Nutzer erhält, je nach seinem Aufgabenbereich, eine Zusammenstellung aus den verschiedenen Gruppen. Dabei sollte er mindestens einer Seitengruppe, einer Seiten-Mount-Gruppe und einer Rechtegruppe zugeordnet werden. (Beachten Sie, dass die zwei Häkchen unter „Mount from Groups“ gesetzt sind, um alle Mounts aus den Gruppen zu übernehmen.) Um dies noch zu vereinfachen, definieren wir so genannte META-Gruppen, die diese Zusammenfassung übernehmen. Immer wenn wir eine Kombination mehr als einmal benötigen, lohnt es eine solche META-Gruppe anzulegen und den entsprechenden Nutzer dann nur zu dieser hinzuzufügen. Damit ist es später wieder einfach, Änderungen für eine komplette Abteilung vorzunehmen, ohne die eigentlichen Benutzer ändern zu müssen. Da wir in dem Beispiel jeweils mehrere Redakteure in einer Abteilung haben, legen wir eine Gruppe „META: Red. Entw.Abtl.“ an, die alle Berechtigungen für Redakteure in der Entwicklungsabteilung zusammenfasst. Diese META-Gruppe enthält dann die Untergruppen „S: Entwicklung“, „SM: Entwicklung“, „R: einf. Redakteur“ und „FM: Entwicklungsabt.“.

Ein Redakteur für alle Abteilungen mit erweiterten Rechten lässt sich einfach durch entsprechende Kombination der Gruppentypen konfigurieren

Ein Redakteur für alle Abteilungen mit erweiterten Rechten lässt sich einfach durch entsprechende Kombination der Gruppentypen konfigurieren

Fazit

Auch wenn es etwas Disziplin beim Anlegen der Backend-Nutzergruppen erfordert, hat man ein übersichtliches, leicht anpassbares und skalierbares Berechtigungskonzept, welches sich nicht nur bei größeren Projekten lohnt. Denn sind die Backend-Nutzergruppen einmal angelegt, kann man sich die Berechtigungen eines neuen Benutzers einfach zusammenklicken. Und aufgrund der Auslagerung der Konfigurationen auf verschiedene Gruppen sind spätere Änderungen mit wenigen Handgriffen erledigt.

- Anzeige-

Dieser Artikel stammt aus:

 

Weitere Artikel dieser Ausgabe

2 + 2 = 5

Or how an excellent jam session could be a collaborative effort

St. Augustin, Florida, January 20th 2001. Rie and I are walking through the main street of the... »

Bilderflut im Griff

Vergleich der TYPO3-Erweiterungen für Bildergalerien

Wer schon einmal Hunderte von Bildern auf einer Webseite veröffentlichen wollte, weiß... »

Das Landesportal www.sachsen-anhalt.de

Umstellung eines Landesauftritts auf TYPO3

Das deutsche Bundesland Sachsen-Anhalt bietet mit dem Landesportal eine umfassende Informations-... »

Das Optimum herausholen

TYPO3 mit Extensions erweitern

TYPO3 lässt sich auf einfache Art und Weise mit Extensions erweitern. Bei Extensions handelt... »

E-Payment

Ein Wegweiser durch den Dschungel der Anbieter

Für Händler und Shop-Entwickler ist das große E-Payment-Angebot gleichermaßen... »

E-Payment aktuell

Bezahlen über elektronische Netze

Wenn jemand Waren oder Dienstleistungen verkauft, greift ein anderer dafür seit dreitausend... »

Eclipse

Eine universelle Entwicklungsumgebung

In den Jahren seiner Entstehung und Verbreitung hat Eclipse eine hohe Resonanz erreicht. Rund... »

Einmal um die ganze Welt mit TYPO3

Internationaler Großeinsatz für die österreichische Wirtschaftskammer

Benutzer und Entwickler wissen um die Leistungsfähigkeit von TYPO3. Man kennt viele Einsatzmöglichkeiten... »

Frisiert und aufgebohrt

Bessere Performance mit TYPO3

Idealerweise sollte die Performance einer Website so lange kein Thema sein, wie ihre Anwendung... »