-- maxarbos <[EMAIL PROTECTED]> wrote (on Thursday, 10 July 2008, 12:53 PM -0700): > > I think I got it. > > I needed to change the resource name to caplital 'Test' > > So I just need to add the check within every method? > Seems a bit susceptible to errors.
The other possibility is to make those methods protected and prefix them with a '_', and add proxying via __call(): protected function _echoHello() { echo 'Hello!'; } public function __call($method, $args) { if (method_exists($this, '_' . $method)) { if (!$this->acl->isAllowed($this->user, __CLASS__, $method)) { throw new Exception('Access denied'); } return call_user_func_array(array($this, '_' . $method), $args); } throw new Exception(sprintf('Invalid method "%s"', $method)); } Any method that doesn't need ACL checks can then simply be declared public. This _will_ have a performance hit (both from overloading and from using call_user_func_array()), but it will automate things. > maxarbos wrote: > > > > still getting the same error: > > > > denied > > Fatal error: Uncaught exception 'Zend_Acl_Exception' with message > > 'Resource 'Test' not found' > > in /xxx/Zend/Acl.php:297 > > Stack trace: > > #0 /xxx/Zend/Acl.php(691): Zend_Acl->get('Test') > > #1 /xxxx/admin/Test.php(24): > > Zend_Acl->isAllowed('guest', 'Test', 'echoHello') > > #2 /xxx/admin/index.php(50): Test->echoHello() > > #3 {main} thrown in /xxx/Zend/Acl.php on line 297 > > > > > > > > vRandom wrote: > >> > >> Move this > >> > >> require_once 'Test.php'; > >> $test = new Test($acl); > >> > >> under > >> > >> $acl->allow('member', 'test'); > >> > >> Terre > >> > >> > > > > > > -- > View this message in context: > http://www.nabble.com/Is-it-possible-to-use-Zend_ACL-without-MVC-tp18385583p18390545.html > Sent from the Zend Framework mailing list archive at Nabble.com. > -- Matthew Weier O'Phinney Software Architect | [EMAIL PROTECTED] Zend Framework | http://framework.zend.com/