Hi, The issue tracker seems to be down :( Can you send me the patch in private ?
Emmanuel 2010/11/12 Ralph Schindler <[email protected]>: > Hi All, > > I've uploaded a patch to Zend_Acl that covers this use case while being > completely backwards compatible. > > I'd really like to see everyone test this so we can feel good about > including it ASAP. > > Issue: > http://framework.zend.com/issues/browse/ZF-10649 > > Patch: > http://framework.zend.com/issues/secure/attachment/13431/ZF-10649.patch > > -ralph > > On 11/11/10 6:50 PM, Terre Porter wrote: >> >> So I've taken a look since this problem affected my code also. >> >> If I understand the problem correctly would it not be better to just >> adjust the isAllowed code to support the changes to the setRule? >> >> if (null !== $resource) { >> // keep track of originally called resource >> $this->_isAllowedResource = $resource; >> $resource = $this->get($resource); >> if (!$this->_isAllowedResource instanceof >> Zend_Acl_Resource_Interface) { >> $this->_isAllowedResource = $resource; >> } >> // if resource is null, and resources exist then add them instead >> } elseif ($resource === null&& count($this->_resources)> 0) { >> foreach (array_keys($this->_resources) as $k => $v ) { >> if (null !== ($result = $this->isAllowed($role, $v, >> $privilege))) { >> return $result; >> }; >> } >> } >> >> The follow now works as expected. >> >> $acl = new Zend_Acl(); >> $acl->addRole(new Zend_Acl_Role('role')); >> $acl->addResource(new Zend_Acl_Resource('res')); >> >> $acl->allow('role','res', 'privilege'); >> echo $acl->isAllowed('role','res','privilege')? "allowed" : "denied"; // >> returns allowed >> >> $acl->removeAllow('role',null,'privilege'); >> echo $acl->isAllowed('role',null,'privilege')? "allowed" : "denied"; // >> returns denied >> >> And the second code >> >> $acl = new Zend_Acl(); >> $acl->addRole(new Zend_Acl_Role('role')); >> $acl->addResource(new Zend_Acl_Resource('res')); >> >> $acl->allow('role'); >> echo $acl->isAllowed('administrator') ? "allowed" : "denied"; // returns >> allowed >> >> Would be the same as : (since null resource is all defined resources) >> >> $acl->allow('role', 'res'); >> echo $acl->isAllowed('administrator') ? "allowed" : "denied"; // returns >> allowed >> >> Hope that helps. >> Terre >> >> >> -----Original Message----- >> From: Ralph Schindler [mailto:[email protected]] >> Sent: Thursday, November 11, 2010 12:50 PM >> To: [email protected] >> Subject: Re: [fw-general] Zend_Acl 1.11 broken my code >> >> I've been looking at this over the past day and I am attempting to find a >> solution. As you can see it was a fix for a previous issue: >> >> http://framework.zend.com/issues/browse/ZF-9643 >> >> Fixing the previous issue did not break any existing unit tests. >> >> I will get to the bottom of it and figure out a solution that works for >> everyone. >> >> -ralph >> >> >> >> >> On 11/11/10 12:32 AM, Valentin wrote: >>> >>> Hi, >>> I'm impressed, is exactly the problem reported at bug >>> http://framework.zend.com/issues/browse/ZF-10649 >>> >>> Thanxx >>> >>> 2010/11/10 Emmanuel Bouton<[email protected]> >>> >>>> Hi, >>>> >>>> A bug has been created for that : >>>> http://framework.zend.com/issues/browse/ZF-10649 >>>> >>>> I suggest you to vote for its fix ;) >>>> >>>> Manu >>>> >>>> 2010/11/10 Valentin<[email protected]> >>>> >>>>> Hi, >>>>> New version 1.11 have only one change in Zend_Acl line 636: >>>>> >>>>> Old line >>>>> $resources = array($resources); >>>>> change for this >>>>> $resources = ($resources == null&& count($this->_resources)> 0) ? >>>>> array_keys($this->_resources) : array($resources); >>>>> >>>>> >>>>> I've been studying (and debug) all day and how it affects the code >>>>> and >>>> >>>> not >>>>> >>>>> understand what happens. Any ideas? >>>>> Thanks >>>>> >>>> >>> >> >> >
