Vollständige Version anzeigen : Acl und Module
Hallo,
für meine Projekte nutze ich in der Regel, die Modulare Verzeichnis Struktur und mich würde mal interessieren, ob ACL die von Haus aus Unterstützt oder muss ich evtl. was erweitern? Bin da bis jetzt noch nicht ganz schlau draus geworden. ;)
Gruß SR
Moin SRIT,
also ich habe meine ACL so aufgeteilt, dass ich pro Modul eine eigene verwende. Je nachdem, welches Modul gerade aufgerufen wird, wird dann die entsprechende ACL geladen.
In meiner ACL entsprechen dann die Controller den Ressourcen und die Actions den Rules. Die Daten habe ich in einer Datenbank abgelegt, man kann das Ganze aber auch Konstruktor der ACL Klasse aufbauen.
Für die Abfragen verwende ich dann ein einfaches Plugin:
class Member_Plugin_Acl extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
// get session object
$session = Zend::registry('authsession');
// get current role
$role = $session->sess_role;
// get current module, controller and action values
$module = $request->getModuleName();
$controller = $request->getControllerName();
$action = $request->getActionName();
// get acl object
$acl = Travello_Acl::getInstance($module);
if (!$acl->isAllowed($role, $controller, $action))
{
if ('guest' == $role)
{
$request->setModuleName('main');
$request->setControllerName('index');
$request->setActionName('login');
}
else
{
$request->setModuleName('main');
$request->setControllerName('index');
$request->setActionName('forbidden');
}
$originalRoute = array(
'module' => $module,
'controller' => $controller,
'action' => $action
);
$request->setParam('original_route', $originalRoute);
}
}
}
Das nur als knappe Erläuterung....
Gruß,
Ralf
Hey die Idee ist gar nicht verkehrt. :)
thomas_w
14.03.2007, 21:00
@Ralf
Vielen Dank für Dein Beispiel. Momentan sind zum ZF einfach noch zu wenige
Beispiele zu finden. Insbesondere da sich die API immer wieder verändert.
Ich hoffe, dass dies sich ab der ZF 0.9.0 ändert. Was mir fehlt sind "Best practices"
zu den jeweiligen Problemen.
Ok, kommt Zeit kommt "Ralf's" Lösung :rolleyes:
Grüße
Thomas
Momentan sind zum ZF einfach noch zu wenige
Beispiele zu finden. Insbesondere da sich die API immer wieder verändert.
Liegt wohl auch daran das wir alle sehr beschäftigt sind und am Release arbeiten...
und leider ist es meistens auch so das gute Coder nicht gut Dokumentieren können. ;)
Aber meistens sind die besten Beispiele in der Dokumentation und in der Testumgebung zu finden :p
Grüße
Thomas
KingCrunch
14.03.2007, 21:32
Kann man ja auch überlegen, ob man für den deutschen Sprachraum hier mal son paar "Best Practices" erstellt. So quasi "Tutorials" sowas eben ^^ ... hmmm.... Son Unterforum gibs scho, oder? Ma guckn, ob ich "Zeit" finde :D
Daniel84
16.03.2007, 10:17
Ich mache es auch ähnlich wie Ralf
vBulletin® v3.6.12, Copyright ©2000-2010, Jelsoft Enterprises Ltd.