von euromark am Mo 23. Nov 2009, 00:18
eigentlich nicht, wenn du es in der DB stehen hast
ich würd ja auch aus performance-gründen soetwas vorschlagen:
bei änderungen an den rechten wird jeweils ein neues "tmp-file" angelegt
darin enthalten sind quasi alle berechtigungen pro "role" etc
nun kann man zentral im Controller/Component eine Funktion schreiben
die dieses "file-array" einliest.
und dann kann man mittels statischem zugriff darauf jederzeit abfragen machen
if (AuthExtComponent::isAllowed(role, controller/action)) {...}
oder detaillierter, bei CRUD verwendung
if (AuthExtComponent::mayWrite(x, y)) {...}
if (AuthExtComponent::mayRead(x, y)) {...}
if (AuthExtComponent::mayDelete(x, y)) {...}
...whatever
und zwar von überall: controller, model, view, helper, ...
das wäre wesentlich performanter als alle anderen verfahren, dynamisch flexibel und dennoch mit der vollen mächtigkeit der DB-Abfragen aus model/controller. und da es sich um einen reinen lese-zugriff auf ein "cache"-file des DB-Contents handelt, verletzt es keine der mvc-grundsätze