Index: tests/Zend/Acl/AclTest.php =================================================================== --- tests/Zend/Acl/AclTest.php (revision 23890) +++ tests/Zend/Acl/AclTest.php (working copy) @@ -1373,4 +1373,36 @@ $this->assertFalse($this->_acl->isAllowed('guest', 'blogpost')); $this->assertFalse($this->_acl->isAllowed('guest', 'blogpost', 'read')); } -} + + /** + * @group ZF-10879 + */ + public function testAllowAndDenyOverrideInternalListOfResources() + { + + $this->_acl->addRole(new Zend_Acl_Role('Guest')) + ->addRole(new Zend_Acl_Role('Registered')) + ->addRole(new Zend_Acl_Role('Manager'), 'Registered'); + $this->_acl->deny(); + + $this->_acl->add(new Zend_Acl_Resource('resGuest')) + ->allow('Guest') + ->deny(array( + 'Registered', + 'Manager' + )); + $this->assertTrue($this->_acl->isAllowed('Guest', 'resGuest')); + $this->assertFalse($this->_acl->isAllowed('Registered', 'resGuest')); + $this->assertFalse($this->_acl->isAllowed('Manager', 'resGuest')); + + $this->_acl->add(new Zend_Acl_Resource('resUser'))->allow('Registered'); + $this->assertFalse($this->_acl->isAllowed('Guest', 'resUser')); + $this->assertTrue($this->_acl->isAllowed('Registered', 'resUser')); + $this->assertTrue($this->_acl->isAllowed('Manager', 'resUser')); + + $this->_acl->add(new Zend_Acl_Resource('resAdmin'))->allow('Manager'); + $this->assertFalse($this->_acl->isAllowed('Guest', 'resUser')); + $this->assertFalse($this->_acl->isAllowed('Registered', 'resUser')); + $this->assertTrue($this->_acl->isAllowed('Manager', 'resUser')); + } +} \ No newline at end of file