/** * Ensures that removal of all Roles results in Role-specific rules being removed * * @return void */ public function testRuleRoleRemoveAll() { $this->_acl->addRole(new Zend_Acl_Role('guest'))->allow('guest'); $this->assertTrue($this->_acl->isAllowed('guest')); $this->_acl->removeRoleAll(); try { $this->_acl->isAllowed('guest'); $this->fail('Expected Zend_Acl_Role_Registry_Exception not thrown upon isAllowed() on non-existent Role'); } catch (Zend_Acl_Role_Registry_Exception $e) { $this->assertContains('not found', $e->getMessage()); } $this->_acl->addRole(new Zend_Acl_Role('guest')); $this->assertFalse($this->_acl->isAllowed('guest')); }
/** * Ensures that removal of all Roles results in Role-specific rules being removed * * @return void */ public function testRuleRoleRemoveAll() { $this->_acl->addRole(new Role\GenericRole('guest'))->allow('guest'); $this->assertTrue($this->_acl->isAllowed('guest')); $this->_acl->removeRoleAll(); try { $this->_acl->isAllowed('guest'); $this->fail('Expected Zend\\Acl\\Role\\Exception not thrown upon isAllowed() on non-existent Role'); } catch (Acl\Exception\InvalidArgumentException $e) { $this->assertContains('not found', $e->getMessage()); } $this->_acl->addRole(new Role\GenericRole('guest')); $this->assertFalse($this->_acl->isAllowed('guest')); }
/** * Prüft, ob schon überprüft wurde, ob es etwas zu cachen gibt, und holt * dies im Zweifallsfall nach. * @return Dkplus_Acl_Adaptable */ protected function _checkCaching() { if (!$this->_cachingCalled) { if ($this->hasCachingAdapter()) { $changes = $this->_getCachingAdapter()->getChanges(); foreach ($changes as $change) { //Role und Resource wurden geändert (Regeländerung) if (!is_null($change['role']) and !is_null($change['resource'])) { if ($this->hasLoaded($change['role'], $change['resource'])) { $this->_setUnloaded($change['role'], $change['resource']); } } elseif (!is_null($change['role'])) { if ($this->hasRoleLoaded($change['role'])) { $this->_loaded = array(); $this->_loadedResources = array(); $this->_loadedRoles = array(); parent::removeAll(); parent::removeRoleAll(); } } elseif (!is_null($change['resource'])) { if ($this->hasResourceLoaded($change['resource'])) { $this->_loaded = array(); $this->_loadedResources = array(); $this->_loadedRoles = array(); parent::removeAll(); parent::removeRoleAll(); } } } } } $this->_cachingCalled = true; return $this; }