staram się dodać acl do aplikacji w której mam dwa moduły: default, admin.
class Plugin_Acl extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request) { // set up acl $acl = new Zend_Acl(); // add the roles $acl->addRole(new Zend_Acl_Role('guest')); $acl->addRole(new Zend_Acl_Role('user'), 'guest'); $acl->addRole(new Zend_Acl_Role('administrator'), 'user'); /** Default module */ $acl->add(new Zend_Acl_Resource('index')) ->add(new Zend_Acl_Resource('index2')); /** Admin module */ $acl->add(new Zend_Acl_Resource('admin')) //->add(new Zend_Acl_Resource('index', 'admin')) ; // add the resources $acl->allow('guest', 'index') ->allow('guest', 'index2') ->deny('guest','admin', 'index'); $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()) { $identity = $auth->getIdentity(); }else{ $role = 'guest'; } $controller = $request->controller; $action = $request->action; if (!$acl->isAllowed($role, $controller, $action)) { if ($role == 'guest') { $request->setControllerName('user') ->setActionName('login') ->setModuleName('admin'); } else { $request->setControllerName('error') ->setActionName('noauth'); } } }
I nie wiem dlaczego ale jak ustawię $acl->allow('guest', 'index'), gość ma wstęp do admin/index. A chcę aby miał dostęp do "default/index" a nie do "admin/index".