tt_news: BE-User Zugriff auf alle Kategorien geben

Wenn TYPO3-Websites mit vielen Redakteuren und Redakteursgruppen arbeiten, dann werden oft auch die Zugriffsrechte auf News-Beiträge bzw. -Kategorien eingeschränkt. Dies ist bequem über die BE-User bzw. -Gruppen zu regeln, indem dort aus dem Kategoriebaum die erlaubten Kategorien ausgewählt werden.

Nun gibt es aber oft auch Chefredakteure, die alles sehen können sollen. Bisher war dies kein Problem – einfach keine Kategorie explizit zuweisen. Dies wurde implizit als „alle Kategorien“ gewertet. Seit Version 3 verhält sich tt_news jedoch unerwartet anders, nämlich genau anderherum: ist keine Kategorie angegeben, hat der (Chef-)Redakteur auch keinerlei Berechtigungen.

Soll das Newssystem aber dynamisch sein, d.h. auch neue Kategorien durch Nicht-Admin-User angelegt werden können, oder ist das System mit vielen Kategorien versehen, wird es unmöglich, alle Kategorien einzeln zuzuweisen bzw. nachzutragen, falls eine neu hinzukommt.

Ursache

Die Ursache wurde bereits im Januar 2010 erkannt (#13232). Die Methode, die für das Backend eine Liste der erlaubten Kategorien liefern soll, liefert im Falle einer leeren Kategorieauswahl „0“ statt eines leeren Strings. Bei genauerer Betrachtung wird dies auch klar: vor der Rückgabe wird der Wert durch die Methode t3lib_div::intExplode() geschickt, um sicher zu gehen, dass nur INT-Werte in der Liste sind. Leider wird hier der dritte Parameter $onlyNonEmptyValues nicht auf TRUE gesetzt, wodurch die default-Belegung (FALSE) bleibt. Und was gibt ein intval(„“)? Genau…

Im Bugtracker finden sich zwei Patches dazu. Die von mir bevorzugte Lösung: 0013232_2.diff