Anzeige
Anzeige
Software
Artikel merken

Rechteverwaltung im Backend

Bei TYPO3-Projekten mit mehreren Redakteuren wird die Vergabe von Backend-Berechtigungen schnell unübersichtlich. Auch das Anlegen zusätzlicher Benutzer mit neuen Berechtigungen und anderen Einstiegspunkten in den Seitenbaum kann zu einem leidigen Thema werden, wenn eventuell vorhandene Berechtigungen und Zugriffseinstellungen angepasst werden müssen. Benutzerberechtigungen sollten von Anfang an systematisch angegangen werden, damit man eine konsistente und skalierbare Rechteverwaltung erhält.

6 Min. Lesezeit
Anzeige
Anzeige

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

Anzeige
Anzeige

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.

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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

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:

Anzeige
Anzeige
  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:

Anzeige
Anzeige
  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.

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:

Anzeige
Anzeige
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.“.

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.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
2 Kommentare
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Jan

Hallo,

> Um das vorzustellende Konzept besser erklären zu können,
> soll der abgebildete Seitenbaum als Beispiel dienen.

Von welchem abgebildeten Seitenbaum ist hier die Rede? Ich seh keinen.

Grüsse
Jan

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige