/** @test */ public function containedFiltersHaveCorrectAccessRights() { $filterBoxConfig = $this->configurationBuilderMock->getFilterboxConfigurationByFilterboxIdentifier('testfilterbox'); $filterbox = $this->filterboxFactory->createInstance($filterBoxConfig); $accessableFilterBox = $this->filterboxFactory->createAccessableInstance($filterbox); // AccessGroups are configured for filter2 -> should not be allowed to access. $this->assertTrue($accessableFilterBox->hasItem('filter1')); $this->assertFalse($accessableFilterBox->hasItem('filter2')); }
/** * Factory method for creating filterbox collection for a given configuration builder * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @param boolean $resetFilterBoxCollection * @return Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection */ public function createInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, $resetFilterBoxCollection) { if ($this->instances[$configurationBuilder->getListIdentifier()] === null || $resetFilterBoxCollection === true) { $filterboxConfigCollection = $configurationBuilder->buildFilterConfiguration(); $filterboxCollection = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection', $configurationBuilder); /* @var $filterboxCollection Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection */ foreach ($filterboxConfigCollection as $filterboxConfiguration) { /* @var $filterboxConfiguration Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig */ $filterbox = $this->filterboxFactory->createInstance($filterboxConfiguration); $filterboxCollection->addFilterBox($filterbox, $filterbox->getfilterboxIdentifier()); } $this->instances[$configurationBuilder->getListIdentifier()] = $filterboxCollection; } return $this->instances[$configurationBuilder->getListIdentifier()]; }
/** * Returns a new filterbox with accessable filters only. * * @return Tx_PtExtlist_Domain_Model_Filter_Filterbox */ public function getAccessableFilterbox() { return $this->filterboxFactory->createAccessableInstance($this); }