/**
  * [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;
 }