/** * [getCrudBackendUserGroups description] * * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\R3H6\BeuserManager\Domain\Model\BackendUserGroup> */ public function getCrudBackendUserGroups() { /** @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage $objectStorage */ $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); foreach ($this->groups as $group) { $objectStorage->addAll($group->getCrudBackendUserGroups()); } return $objectStorage; }
/** * @test */ public function addAllAddsAllObjectsFromAnotherStorage() { $object1 = new \StdClass(); $object2 = new \StdClass(); $objectStorageA = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); // It might be better to mock this $objectStorageA->attach($object1, 'foo'); $objectStorageB = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); $objectStorageB->attach($object2, 'baz'); $this->assertEquals($objectStorageB->offsetExists($object1), FALSE); $objectStorageB->addAll($objectStorageA); $this->assertEquals($objectStorageB[$object1], 'foo'); $this->assertEquals($objectStorageB[$object2], 'baz'); }
/** * [getCrudBackendUserGroups description] * * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\R3H6\BeuserManager\Domain\Model\BackendUserGroup> */ public function getCrudBackendUserGroups() { /** @var R3H6\BeuserManager\Domain\Repository\BackendUserGroupRepository $backendUserGroupRepository */ $backendUserGroupRepository = GeneralUtility::makeInstance(ObjectManager::class)->get(BackendUserGroupRepository::class); /** @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage $objectStorage */ $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); // Collect data from subgroups. foreach ($this->subGroups as $group) { $objectStorage->addAll($group->getCrudBackendUserGroups()); } // Read custom permissions and add selected crud groups to the storage. foreach (GeneralUtility::trimExplode(',', $this->customOptions, true) as $optionValue) { if (strpos($optionValue, CrudBackendUserGroupPermission::KEY) === 0) { $uid = (int) substr($optionValue, strlen(CrudBackendUserGroupPermission::KEY) + 1); $group = $backendUserGroupRepository->findByUid($uid); if ($group) { $objectStorage->attach($group); } } } return $objectStorage; }