public function getAccessor(array $context = array()) { $accessor = new Perms_Accessor(); $accessor->setContext($context); $accessor->setPrefix($this->prefix); $accessor->setGroups($this->groups); if ($this->checkSequence) { $accessor->setCheckSequence($this->checkSequence); } if ($resolver = $this->getResolver($context)) { $accessor->setResolver($resolver); } return $accessor; }
function testApplicableGroupsThroughCheckSequence() { $accessor = new Perms_Accessor(); $static = new Perms_Resolver_Static(array('Anonymous' => array('view'), 'Registered' => array('view', 'edit'))); $global = new Perms_Resolver_Static(array('Admins' => array('admin'))); $accessor->setResolver($static); $accessor->setCheckSequence(array($g = new Perms_Check_Alternate('admin'), new Perms_Check_Direct())); $g->setResolver($global); $this->assertEquals(array('Admins', 'Anonymous', 'Registered'), $accessor->applicableGroups()); }