Ich habe in ein Projekt eine Access Control List implementiert wie in diesem Tutorial beschrieben. Die Zugriffsrechte sind bei mir genau so simpel wie im Tutorial, es gibt eine Gruppe "Administratoren", die auf alles Zugriff hat (1 1 1 1 beim ACO "controllers") und eine Gruppe "User", die auf nichts Zugriff hat (-1 -1 -1 -1 bei "controllers") außer ausgewählte Controller und Actions. Leider funktioniert es nicht, wie es sollte: Auch als Administrator habe ich nur Zugriff auf die Actions, die alle User aufrufen können. In den Admin-Bereich komme ich nur, wenn ich für mich als User gesondert diese Rechte einstelle, aber das ist ja nicht Sinn der Sache. Die "parent_id" in der ARO-Tabelle stimmt eigentlich (1) und die "group_id" in der User-Tabelle auch. Wo kann da der Fehler liegen? Muss sonst noch irgendetwas gegeben sein, außer dass der User die richtige "group_id" hat und der ARO-Eintrag der Gruppe volle Rechte? Oder wo könnte ich eventuell etwas zerschossen haben, wenn ich an ACOs, AROs etc. öfter etwas geändert habe?
Ich sollte eigentlich Auszüge aus dem Code posten, aber er ist ja wie gesagt praktisch identisch mit dem aus dem Tutorial. Wird aber gerne nachgeliefert, wenn jemand eine Idee hat, wo es hapern könnte.
Ich hätte auch noch eine zweite wichtige Frage: Ich möchte, dass User ihre eigenen Beiträge editieren können und nur die. Da reicht es ja nicht mehr die Zugriffsrechte nach Action zu setzen, man muss auch die Beitrags-ID überprüfen. Wie baue ich das am elegantesten ein? Kann die ACL-Komponente sowas schon oder muss ich wirklich eigenhändig die "user_id" des eingeloggten Benutzers mit der des Beitrags abgleichen?