Einstieg - Grundlegende rollenbasierte Zugriffe
Auf dieser Seite geht es um die Grundfunktionalität der ContentAccess-Module, im folgenden CA-Module genannt.
Die Grundfunktion dieser Module ist einfach: Zugriffe auf Rollenbasis beschränken. Ihr könnt damit festlegen, wer was darf.
Diese Festlegungen werden fest pro Rolle getroffen. Sinnvoll, wenn man will, dass nur eine bestimmte Rolle bestimmte Rechte habe soll.
So könnt ihr bestimmte Inhaltstypen so einstellen, dass nur eine bestimmte Rolle sie sehen darf. Oder dass eine bestimmte Rolle alle Inhalte sehen und nur eigene Inhalte bearbeiten darf usw.
Diese Einstellungen werden in den Grundzügen pro Inhaltstyp definiert und können pro Benutzerrolle festgelegt werden. Es gibt allerdings auch die Möglichkeit, die Zugriffseinstellungen für einzelne Nodes zu ändern und man kann auch einzelnen Usern Zugriffsrechte gewähren, anstelle von ganzen Benutzerrollen. Doch dazu später mehr.
Die Module
Es gibt einige CA-Module für Drupal, die beiden gebräuchlichsten sind:
Beide Module haben einen ähnlichen Funktionsumfang.
Ich arbeite nur mit Content Access. Warum? Weil dieses Modul damals das erste war, dass ich auf meiner Suche gefunden habe, weil ich weiß, wie ich dieses Modul bedienen muss und weil es genau das macht, was ich will. *Never change a running system*
Ergo werde ich mich auch hier auf Content Access beschränken. Wer lieber Node Access benutzen möchte, kann dies gerne machen, die Möglichkeiten sind wie gesagt ähnlich.
Zum Zeitpunkt des Verfassens dieser Buchseiten werden folgende Versionen benutzt:
Drupal --> 6.17 (deutsche Version von DC)
Content Access --> 6.x-1.2
Wer feinere Zugriffssteuerung verwenden möchte (pro user pro node), der benötigt zusätzlich noch das Modul ACL, welches momentan in der Version 6.x-1.2 vorliegt.
Vorbereitung und Installation
Dieser Punkt ist schnell abgehandelt: Modul(e) herunterladen, entpacken, nach sites/all/modules hochladen und aktivieren - fertig.
Zugriffsbeschränkung pro Inhaltstyp
Nun kommen wir zum wichtigen Teil, der Anwendung.
Wichtig: Viele suchen nach der Aktiverung unter admin/settings nach einer Konfigurationsseite. Die gibt es dort nicht, die Einstellungen werden an anderer Stelle getätigt.
Für die Einstellungen ruft ihr admin/content/types auf und erhaltet eine Liste mit allen Inhaltstypen. Dort klickt ihr bei dem gewünschten Inhaltstyp auf "Bearbeiten". Auf der darauf folgenden Seite habt ihr oben nun einen neuen Reiter "Access Control (Zugriffsrechte)". Wenn ihr dort drauf klickt, kommt ihr zu den Einstellungen von Content Access.
Dort findet ihr die "Einstellungen für die Rollenbasierte Zugriffskontrolle", welche sich in die 6 verschiedenen Zugriffsrechte aufteilt und darunter jeweils alle vorhandenen Benutzerrollen auflistet.
Die 6 Zugriffsrechte sind:
- Jeden Inhalt sehen:
- Jeden Inhalt bearbeiten:
- Jeden Inhalt löschen:
- Eigenen Inhalt sehen:
- Eigenen Inhalt bearbeiten:
- Eigenen Inhalt löschen:
Unter jedem dieser Punkte bekommt ihr alle Benutzerrollen aufgelistet. Ihr könnt also einfach bei den Rechten die entsprechenden Rollen auswählen und speichern.
Wenn also Rolle A alle Inhalte sehen darf und sonst nichts, dann setzt ihr bei dieser Rolle unter "Jeden Inhalt sehen" einen Haken. Wenn Rolle B Alle Inhalte sehen und bearbeiten und nur eigene Inhalte löschen darf, dann setzt ihr jeweils unter "Jeden Inhalt sehen", "Jeden Inhalt bearbeiten" und "Eigenen Inhalt löschen" einen Haken bei Rolle B - ganz einfach.
Allerdings muss man beachten, dass die Rechte mitunter andere Rechte einschließen. Wer einen Inhalt editieren darf, darf diesen Inhalt auch sehen. Wer einen Inhalt löschen darf, darf diesen editieren und somit auch sehen / lesen.
Wenn eine Benutzerrolle also nur einen Haken bei "Jeden Inhalt löschen" hat, kann sie automatisch alle Inhalte dieses Typs sehen, bearbeiten und löschen, obwohl kein Haken bei "Jeden Inhalt sehen" und "Jeden Inhalt bearbeiten" gesetzt wurde. Diesen Punkt sollte man bei der Rechtevergabe gut beachten, damit niemand plötzlich Rechte eingeräumt bekommt, die er nicht haben sollte.
Zugriffsbeschränkung pro Node
Wie weiter oben erwähnt, kann man die Zugriffsbeschränkungen nicht nur global für der Inhaltstyp sondern auch für einzelne Nodes ändern.
Dazu ruft man einfach wieder die Konfiguration von Content Access auf und scrollt etwas nach unten.
Dort findet sich der Punkt "Einstellungen für Zugriffskontrolle pro einzelnem Inhalt (node)", wenn man darauf klickt, öffnet sich eine Box, welche nur einen kleinen Text und eine Checkbox enthält. Haken in die Checkbox machen und speichern.
Fortan hat man bei jedem Node (dieses Inhaltstyps) bei der Vollansicht (nicht bei Teasern) ebenfalls den Reiter "Access Control (Zugriffsrechte)". Mit einem Klick darauf kommt man zu einer Seite, die genauso aussieht wie die Konfigurations-Seite von vorhin. Aber die Einstellungen hier gelten nur für diesen Node. Wenn man hier also etwas ändert, werden für diesen Node die Einstellungen des Inhaltstyps überschrieben. Man kann demnach einstellen, dass nur Rolle A alle Beiträge eines Inhaltstyps sehen darf aber bei einem bestimmten Node hat auch Rolle B Leserechte. Diesen Reiter sieht man natürlich nur, wenn man unter admin/user/permissions die entsprechende Berechtigung dafür hat.
So, damit ist die Grundfunktion abgeschlossen.
Wichtig:
- Wenn man einen neuen Inhaltstyp anlegt, sind standardmäßig keine Rechte gesetzt. Es kann also niemand Nodes dieses Typs sehen. Deswegen sollte man beim Anlegen eines neuen Inhaltstyps immer daran denken, diese Zugriffsrechte zu setzen --> Dies wurde anscheinend in einer der letzten Versionen geändert, nun haben standardmäßig Gäste und authentifizierte Benutzer (also die entsprechenden Benutzerrollen) Leserechte für alle Nodes eines neuen Inhaltstyps
- Die Berechtigung, wer Nodes von einem bestimmten Typ erstellen darf, wird nicht über Content Access sondern über Drupal geregelt und ist unter admin/user/permissions zu finden.
Neue Kommentare
vor 2 Tagen 20 Stunden
vor 2 Tagen 23 Stunden
vor 2 Tagen 23 Stunden
vor 2 Tagen 23 Stunden
vor 3 Tagen 20 Stunden
vor 3 Tagen 22 Stunden
vor 4 Tagen 19 Stunden
vor 5 Tagen 12 Stunden
vor 5 Tagen 13 Stunden
vor 5 Tagen 16 Stunden