Die Anforderung klingt auf den ersten Blick abstrus, den Benutzer Inhalte verwalten zu lassen, ohne ihm die Berechtigung auf "Inhalte verwalten" einzuräumen. Tatsächlich bringt die Berechtigungsstufe "Inhalte verwalten" so viele Rechte mit sich, die sich anschließend nicht wieder abschalten lassen, sodass man den Nutzer an vielen Stellen nicht vor Fehlbedienung schützen kann.
Es gibt Inhalte einer Website wie z.B. die Impressumsseite, die der Nutzer zwar editieren, im eigenen Interesse aber nicht löschen darf.
Andere Inhalte können wichtige logische Informationen beherbergen, die ein User keinesfalls bearbeiten darf, um die Funktionslogik nicht zu beeinträchtigen. Idealerweise entzieht man dem User die Möglichkeit dafür per Konfiguration. Das Ziel ist also, dem Nutzer möglichst punktgenau die Rechte für bestimmte Dinge zu geben ohne ihm gleichzeitig das Tor für alles breit zu öffnen.
Berechtigungen punktuell einräumen
Für diese Anforderungen helfen zwei kleinere Module weiter: Publish Content und view_unpublished. Publish Content stellt die Rechtestufen für jeden Content zur Verfügung, damit der User die Funktion zum Veröffentlichen bzw. Sperren bequem als Local-Task zur Verfügung hat. Der Benutzer sieht seine Inhalte nicht im Bearbeiten-Modus sondern so, wie sie die Besucher später ebenfalls sehen werden, und kann an dieser Stelle entscheiden sie per Klick zu veröffentlichen. Die Berechtigungen lassen sich per Nodetype und Rolle einstellen und funktionieren wunderbar.
Verleiht man einer Rolle - z.B. Redaktion - die Rechte, alle Inhalte eines Nodetypes ändern und löschen zu können, stellt man überraschend fest, dass die User die Nodes zwar editieren und löschen dürfen. Unveröffentlichte Nodes, die sie selbst nicht erstellt haben, können sie jedoch nicht anzeigen! Was auf den ersten Blick wie ein Fehler wirkt folgt durchaus einer gewissen Stringenz. Der Nutzer besitzt diese Rechte dafür nicht. Das lässt sich auch mit Content Access nicht lösen.
Hier hilft "view_unpublished" weiter. Mit diesem Modul lässt sich dieses Recht global oder je Inhaltstyp einstellen. Das aus meiner Sicht einzige Manko besteht darin, dass sich die Rechte nicht über Features ausrollen lassen. Die Permissions sind zwar vorhanden und lassen sich in Features aktvieren, werden aber nicht mit ausgerollt. Hier liegt offenbar noch ein Bug vor.
Alternative
Wem dies nicht gefällt, der kann die Berechtigungen auch durch eine Kombination von Flag und Rules hinbekommen: Die Rolle darf eine Kennzeichnung verwenden, die bei Benutzung eine Regel zum Veröffentlichen bzw. bei Ent-Kennzeichnung eine Regel zur Sperrung des Contents auslöst. Dies ist aber sehr viel aufwändiger zu konfigurieren und Rules kostet auf trafficstarken Seiten eine Menge Performance.
Features













