Mr.AndersoN
18.12.2007, 15:57
Hi,
in meinem aktuellen Projekt bin ich auf das Problem gestoßen, dass man für alle drei Resourcentypen (Module, Controller, Actions) keine Zugriffsbeschränkung treffen kann.
Man kann Resourcen zwar selbst als Module oder Controller oder Actions implementieren und die Priviligien dementsprechend auch...aber wie gesagt: oder
Nach einigen Überlegungen, wie man eine Zugriffsbeschränkung unter Anbetracht von allen Resourcentypen lösen könnte, bin ich auf die Assertions gestoßen, die in der ZF-Doku beschrieben werden:
http://framework.zend.com/manual/de/zend.acl.advanced.html#zend.acl.advanced.assertion s
Daraufhin hab ich mich mal 10 Minuten hingesetzt und folgende(r) Lösung(sansatz) ist dabei herrausgekommen:
Klassen:
http://ubuntuusers.de/paste/21955/
http://ubuntuusers.de/paste/21956/Verwendung:
$acl->allow('<role>', '<module>', '<controller>', new Grusch_Assertion_Action('<action>', Zend_Acl::TYPE_ALLOW));
$acl->deny('<role>', '<module>', '<controller>', new Grusch_Assertion_Action('<action>', Zend_Acl::TYPE_DENY));Je nachdem, wie die Resourcen implementiert wurden, muss man entsprechend die Assertion für den Controller oder für die Action benutzen.
Ein Assertion für Module könnte man ebenso noch implementieren.
Mich würde eure Meinung dazu interessieren.
Ich empfinde es als eine schnelle und leichte Lösung. Es ist leicht intigriert, ohne, dass man seine Implementation für Auth abändern muss.
in meinem aktuellen Projekt bin ich auf das Problem gestoßen, dass man für alle drei Resourcentypen (Module, Controller, Actions) keine Zugriffsbeschränkung treffen kann.
Man kann Resourcen zwar selbst als Module oder Controller oder Actions implementieren und die Priviligien dementsprechend auch...aber wie gesagt: oder
Nach einigen Überlegungen, wie man eine Zugriffsbeschränkung unter Anbetracht von allen Resourcentypen lösen könnte, bin ich auf die Assertions gestoßen, die in der ZF-Doku beschrieben werden:
http://framework.zend.com/manual/de/zend.acl.advanced.html#zend.acl.advanced.assertion s
Daraufhin hab ich mich mal 10 Minuten hingesetzt und folgende(r) Lösung(sansatz) ist dabei herrausgekommen:
Klassen:
http://ubuntuusers.de/paste/21955/
http://ubuntuusers.de/paste/21956/Verwendung:
$acl->allow('<role>', '<module>', '<controller>', new Grusch_Assertion_Action('<action>', Zend_Acl::TYPE_ALLOW));
$acl->deny('<role>', '<module>', '<controller>', new Grusch_Assertion_Action('<action>', Zend_Acl::TYPE_DENY));Je nachdem, wie die Resourcen implementiert wurden, muss man entsprechend die Assertion für den Controller oder für die Action benutzen.
Ein Assertion für Module könnte man ebenso noch implementieren.
Mich würde eure Meinung dazu interessieren.
Ich empfinde es als eine schnelle und leichte Lösung. Es ist leicht intigriert, ohne, dass man seine Implementation für Auth abändern muss.