Heute hatte ich ein etwas komisches Problem mit Drupal 6. Obwohl die Gruppe eines Benutzers das Recht zum Editieren eines Inhaltstyps hatte (soll nur News pflegen können), kam beim Anklicken der Bearbeiten-Lasche eine Fehlerseite mit der Meldung "Zugriff verweigert".
Die Lösung für das Problem ist relativ simpel, wenn man sich einmal den Inhalt der Funktion node_access in der Datei modules/node/node.module genauer ansieht. Dort wird in der vierten if-Anweisung mit !filter_access($node->format) überprüft, ob das vom Node verwendete Eingabeformat für die jeweilige Benutzergruppe verwendbar ist. Hat ein Benutzer das Recht für diese Filter nicht, darf er auch den Node nicht editieren! Steven hat in seinem englischen Blog-Beitrag das gleiche Problem für Drupal 5 beschrieben, dies scheint also in allen Drupal-Versionen so zu sein. Eine Diskussion über die Thematik und mögliche Änderungen dieses Verhaltens gibt es bei drupal.org.
Lösung
Es gibt nur zwei Möglichkeiten dieses Problem zu beheben. Entweder die Benutzergruppe bekommt unter Einstellungen -> Eingabeformate die Rechte erteilt oder die entsprechenden Nodes werden von einem Benutzer mit den benötigten Rechten auf ein anderes Eingabeformat umgestellt.

Kommentar hinzufügen