ACL Check im View

Klassen zur Datenverarbeitung in den Controllern (DRY)

ACL Check im View

Beitragvon klagoggle am So 22. Nov 2009, 19:11

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
klagoggle
 
Beiträge: 10
Registriert: Mi 4. Jun 2008, 22:30

Re: ACL Check im View

Beitragvon 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
euromark
 
Beiträge: 397
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 1.2.4
OS: Windows


Zurück zu Components

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron