mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-09-13 13:57:10 +02:00
Implemented FixtureManagement
This commit is contained in:
@@ -4,34 +4,13 @@ namespace App\DataFixtures;
|
||||
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
use App\Entity\Source\Primitive\Text\TextSource;
|
||||
use App\Entity\Source\Primitive\Text\TextSourceInterface;
|
||||
use App\DBAL\Types\SystemSlugType;
|
||||
use App\Entity\Source\Complex\UserSource;
|
||||
use App\Entity\Source\Complex\UserSourceInterface;
|
||||
use App\Entity\Meta\Right;
|
||||
use App\DBAL\Types\Meta\Right\LayerType;
|
||||
use App\DBAL\Types\Meta\Right\CRUDType;
|
||||
use App\Entity\Meta\RightInterface;
|
||||
use App\Domain\SourceManagement\SourceRightManager;
|
||||
use App\Domain\FixtureManagement\FixtureSourceFactory;
|
||||
|
||||
/**
|
||||
* @author kevinfrantz
|
||||
*
|
||||
* @todo Create a collection class for all users
|
||||
*/
|
||||
class SourceFixtures extends Fixture
|
||||
{
|
||||
/**
|
||||
* @var TextSourceInterface The example source for the impressum
|
||||
*/
|
||||
private $impressumSource;
|
||||
|
||||
/**
|
||||
* @var UserSourceInterface The UserSource which should be used for the anonymous user
|
||||
*/
|
||||
private $guestUserSource;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
@@ -39,41 +18,10 @@ class SourceFixtures extends Fixture
|
||||
*/
|
||||
public function load(ObjectManager $manager)
|
||||
{
|
||||
$this->setGuestUserSource();
|
||||
$this->setImpressumSource();
|
||||
$manager->persist($this->impressumSource);
|
||||
$manager->persist($this->getImpressumRight());
|
||||
$manager->persist($this->guestUserSource);
|
||||
$fixtureSources = FixtureSourceFactory::getAllFixtureSources();
|
||||
foreach ($fixtureSources as $fixtureSource) {
|
||||
$manager->persist($fixtureSource->getORMReadyObject());
|
||||
}
|
||||
$manager->flush();
|
||||
}
|
||||
|
||||
private function setImpressumSource(): void
|
||||
{
|
||||
$this->impressumSource = new TextSource();
|
||||
$this->impressumSource->setText('Example Impressum');
|
||||
$this->impressumSource->setSlug(SystemSlugType::IMPRINT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @todo Implement that right gets automaticly created by persisting of law
|
||||
*
|
||||
* @return RightInterface
|
||||
*/
|
||||
private function getImpressumRight(): RightInterface
|
||||
{
|
||||
$right = new Right();
|
||||
$sourceRightManager = new SourceRightManager($this->impressumSource);
|
||||
$sourceRightManager->addRight($right);
|
||||
$right->setLayer(LayerType::SOURCE);
|
||||
$right->setCrud(CRUDType::READ);
|
||||
$right->setReciever($this->guestUserSource);
|
||||
|
||||
return $right;
|
||||
}
|
||||
|
||||
private function setGuestUserSource(): void
|
||||
{
|
||||
$this->guestUserSource = new UserSource();
|
||||
$this->guestUserSource->setSlug(SystemSlugType::GUEST_USER);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user