function setUp() { $perms = new Perms(); $perms->setResolverFactories(array(new Perms_ResolverFactory_StaticFactory('static', new Perms_Resolver_Static(array('Admins' => array('admin_wiki')))))); $perms->setGroups(array('Admins')); $perms->setCheckSequence(array(new Perms_Check_Direct(), $this->mockA = $this->getMock('Perms_Check'), $this->mockB = $this->getMock('Perms_Check'))); Perms::set($perms); }
private function getExpect($categories = false, $indirectMap = array(), $globals = array()) { $expect = new Perms(); $expect->setPrefix('tiki_p_'); $expect->setCheckSequence(array($globalAdminCheck = new Perms_Check_Alternate('admin'), $fixedResolverCheck = new Perms_Check_Fixed($globals), new Perms_Check_Direct(), new Perms_Check_Indirect($indirectMap))); $expect->setResolverFactories(array_values(array_filter(array(new Perms_ResolverFactory_ObjectFactory(), $categories ? new Perms_ResolverFactory_CategoryFactory() : null, new Perms_ResolverFactory_GlobalFactory())))); $resolver = $expect->getAccessor()->getResolver(); $globalAdminCheck->setResolver($resolver); $fixedResolverCheck->setResolver($resolver); return $expect; }
function setUp() { $perms = new Perms(); $perms->setCheckSequence(array($this->globalAlternate = new Perms_Check_Alternate('admin'), new Perms_Check_Direct())); $perms->setResolverFactories(array(new Perms_ResolverFactory_StaticFactory('global', new Perms_Resolver_Static(array('Anonymous' => array('tiki_p_view'), 'Registered' => array('tiki_p_view', 'tiki_p_topic_read')))))); $index = new Search_Index_Memory(); $indexer = new Search_Indexer($index); $this->indexer = $indexer; $this->index = $index; $this->perms = $perms; }
function testFilterMixed() { $perms = new Perms(); $perms->setResolverFactories(array($resolver = $this->getMock('Perms_ResolverFactory'), new Perms_ResolverFactory_StaticFactory('global', new Perms_Resolver_Default(true)))); Perms::set($perms); $resolver->expects($this->any())->method('getResolver')->will($this->returnValue(null)); $resolver->expects($this->exactly(3))->method('bulk')->will($this->returnValue(array())); $resolver->expects($this->at(0))->method('bulk')->will($this->returnValue(array()))->with($this->equalTo(array('type' => 'wiki page')), $this->equalTo('object'), $this->equalTo(array('A', 'B'))); $resolver->expects($this->at(1))->method('bulk')->will($this->returnValue(array()))->with($this->equalTo(array('type' => 'category')), $this->equalTo('object'), $this->equalTo(array(10))); $data = array(array('type' => 'wiki page', 'object' => 'A', 'creator' => 'abc'), array('type' => 'wiki page', 'object' => 'B', 'creator' => 'abc'), array('type' => 'category', 'object' => 10), array('type' => 'forumPost', 'object' => 12, 'author' => 'author')); $out = Perms::mixedFilter(array(), 'type', 'object', $data, array('wiki page' => array('object' => 'object', 'type' => 'type', 'creator' => 'creator'), 'category' => array('object' => 'object', 'type' => 'type'), 'forumPost' => array('object' => 'object', 'type' => 'type', 'creator' => 'author')), array('wiki page' => 'view', 'category' => 'view_categories', 'forumPost' => 'forum_post')); $this->assertEquals($data, $out); }
function build() { $alternateCheck = new Perms_Check_Alternate('admin'); $fixedCheck = new Perms_Check_Fixed($this->globalOnlyPermissions); $perms = new Perms(); $perms->setPrefix($this->prefix); $perms->setCheckSequence($this->getSequence($alternateCheck, $fixedCheck)); $perms->setResolverFactories($this->getFactories()); $accessor = $perms->getAccessor(array()); $alternateCheck->setResolver($accessor->getResolver()); $fixedCheck->setResolver($accessor->getResolver()); return $perms; }
function testSkipPermissionChecks() { $perms = new Perms(); $perms->setResolverFactories(array(new Perms_ResolverFactory_StaticFactory('root', new Perms_Resolver_Default(false)))); Perms::set($perms); $manip = new Category_Manipulator('wiki page', 'Hello World'); $manip->overrideChecks(); $manip->setCurrentCategories(array(1, 2, 3, 7)); $manip->setUnmanagedCategories(range(1, 5)); $manip->setNewCategories(array(1, 2, 4, 6)); $this->assertEquals(array(6), $manip->getAddedCategories()); $this->assertEquals(array(7), $manip->getRemovedCategories()); }
function testSkipBulkOnEmptySet() { $perms = new Perms(); $perms->setResolverFactories(array($mock = $this->getMock('Perms_ResolverFactory'))); Perms::set($perms); $mock->expects($this->never())->method('bulk'); }