ACL Check im View

Verfasst:
So 22. Nov 2009, 19:11
von klagoggle
Aloha,
gibts eine möglichkeit die permissions direkt im view zu checken, so dass ich diverse links, divs etc einfach ausblenden kann wenn eine gewisse permission nicht vorhanden ist?
Bedanke mich im voraus!
Cheers,
Thomas
Re: ACL Check im View

Verfasst:
Mo 23. Nov 2009, 00:18
von euromark
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