Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Tests\Functional\Controller\AccessFixtures;
- use App\ApplicationAccess\UserAccesses;
- use App\ApplicationAccess\UserApplicationAccesses;
- use App\DataFixtures\OrderentityFixtures;
- use App\DataFixtures\PortalprofileFixtures;
- use App\DataFixtures\UserFixtures;
- use App\Entity\AccessApplicationprofile;
- use App\Entity\AccessOrderentity;
- use App\Entity\Application;
- use App\Entity\Applicationprofile;
- use App\Entity\Orderentity;
- use App\Entity\OrderentityUser;
- use App\Entity\User;
- use Doctrine\Bundle\FixturesBundle\Fixture;
- use Doctrine\Common\DataFixtures\DependentFixtureInterface;
- use Doctrine\Common\DataFixtures\FixtureInterface;
- use Doctrine\Persistence\ObjectManager;
- /*
- */
- class AccessFixtures extends Fixture implements FixtureInterface, DependentFixtureInterface
- {
- /**
- * @var ObjectManager
- */
- private $om;
- // CONNECTOR NAME
- CONST BLUEBEAN_CONNECTOR_NAME = 'bluebean';
- CONST APPTEST_CONNECTOR_NAME = 'apptest';
- //APPLICATION NAME
- CONST APP_TEST_WITH_ACCESS = 'app1';
- CONST APP_TEST_WITH_ACCESS_OVERRIDEN = 'app2';
- CONST APP_TEST_WITH_NO_ACCESS = 'app3';
- CONST APP_TEST_WITH_NO_ACCESS_OVERRIDEN = 'app4';
- CONST APP_BLUEBEAN_WITH_ACCESS = 'app5';
- CONST APP_BLUEBEAN_WITH_ACCESS_OVERRIDEN = 'app6';
- CONST APP_BLUEBEAN_WITH_NO_ACCESS = 'app7';
- CONST APP_BLUEBEAN_WITH_NO_ACCESS_OVERRIDEN = 'app8';
- /**
- * @inheritDoc
- */
- public function load(ObjectManager $om)
- {
- $this->om = $om;
- $franchisee = $this->getReference('franchisee-1');
- $oe1 = $this->getReference('entiteCmd1');
- $oe2 = $this->getReference('entiteCmd2');
- $oeUser1 = new OrderentityUser();
- $oeUser1->setOrderentity($oe1);
- $oeUser1->setUser($franchisee);
- $oeUser1->setTag(OrderentityUser::MANAGER);
- $oeUser2 = new OrderentityUser();
- $oeUser2->setOrderentity($oe2);
- $oeUser2->setUser($franchisee);
- $oeUser2->setTag(OrderentityUser::MANAGER);
- $om->persist($oeUser1);
- $om->persist($oeUser2);
- //CASE 1 : une app sans connecteur bluebean où le mec a l'accès par défaut
- $app1 = $this->createApp(self::APP_TEST_WITH_ACCESS, self::APPTEST_CONNECTOR_NAME);
- $applicationProfile = new Applicationprofile();
- $applicationProfile->setName('appprofileapp1');
- $applicationProfile->setApplication($app1);
- $applicationProfile->addPortalprofile($franchisee->getProfile());
- $applicationProfile->addRole('ROLE_ACCESS');
- $om->persist($applicationProfile);
- //CASE 2 : une app sans connecteur bluebean où le mec a pas l'accès par défaut
- //Create app without application profile
- $app2 = $this->createApp(self::APP_TEST_WITH_NO_ACCESS, self::APPTEST_CONNECTOR_NAME);
- //CASE 3 : une app sans connecteur bluebean où le mec a l'accès par défaut mais ca a été surchargé par un accessapplicationprofile et il a pas accès (on l'a bien traité, ce cas là ?)
- $app3 = $this->createApp(self::APP_TEST_WITH_NO_ACCESS_OVERRIDEN, self::APPTEST_CONNECTOR_NAME);
- $applicationProfile = new Applicationprofile();
- $applicationProfile->setName('appprofileapp3');
- $applicationProfile->setApplication($app3);
- $applicationProfile->addPortalprofile($franchisee->getProfile());
- $applicationProfile->addRole('ROLE_ACCESS');
- $om->persist($applicationProfile);
- $accessApplicationProfile = new AccessApplicationprofile();
- $accessApplicationProfile->setApplicationprofile(null);
- $accessApplicationProfile->setUser($franchisee);
- $accessApplicationProfile->setApplication($app3);
- $om->persist($accessApplicationProfile);
- //CASE 4 : une app sans connecteur bluebean où le mec a l'accès par défaut
- /** @var User $franchisee */
- $app4 = $this->createApp(self::APP_TEST_WITH_ACCESS_OVERRIDEN, self::APPTEST_CONNECTOR_NAME);
- $applicationProfile = new Applicationprofile();
- $applicationProfile->setName('appprofiletest');
- $applicationProfile->setApplication($app4);
- $applicationProfile->addPortalprofile($franchisee->getProfile());
- $applicationProfile->addRole('ROLE_ACCESS');
- $om->persist($applicationProfile);
- $accessApplicationProfile = new AccessApplicationprofile();
- $accessApplicationProfile->setApplicationprofile($applicationProfile);
- $accessApplicationProfile->setUser($franchisee);
- $accessApplicationProfile->setApplication($app4);
- $om->persist($accessApplicationProfile);
- // CASE 5 : une app avec connecteur bluebean où le mec a pas accès
- $app5 = $this->createApp(self::APP_BLUEBEAN_WITH_NO_ACCESS, self::BLUEBEAN_CONNECTOR_NAME);
- //CASE 6 : une app avec connecteur bluebean où le mec a accès à ses fixed-orderentities et c'est tout
- $app6 = $this->createApp(self::APP_BLUEBEAN_WITH_ACCESS, self::BLUEBEAN_CONNECTOR_NAME);
- $applicationProfile = new Applicationprofile();
- $applicationProfile->setName('appprofileapp6');
- $applicationProfile->setApplication($app6);
- $applicationProfile->addPortalprofile($franchisee->getProfile());
- $applicationProfile->addRole('ROLE_EMETTEUR');
- $om->persist($applicationProfile);
- //CASE 7: une app avec connecteur bluebean où le mec a accès à ses fixed-orderentities, mais au moins une est désactivée, et on en rajoute au moins 1
- $app7 = $this->createApp(self::APP_BLUEBEAN_WITH_NO_ACCESS_OVERRIDEN, self::BLUEBEAN_CONNECTOR_NAME);
- $oe1 = $this->getReference('entiteCmd1');
- $oe2 = $this->getReference('entiteCmd2');
- $om->persist($oeUser1);
- $om->persist($oeUser2);
- $applicationProfile = new Applicationprofile();
- $applicationProfile->setName('appprofileapp6');
- $applicationProfile->setApplication($app7);
- $applicationProfile->addPortalprofile($franchisee->getProfile());
- $applicationProfile->addRole('ROLE_EMETTEUR');
- $om->persist($applicationProfile);
- $oeAccess = new AccessOrderentity();
- $oeAccess->setUser($franchisee);
- $oeAccess->setOrderentity($oe1);
- $oeAccess->setApplication($app7);
- $oeAccessNegative = new AccessOrderentity();
- $oeAccessNegative->setUser($franchisee);
- $oeAccessNegative->setOrderentity($oe2);
- $oeAccessNegative->setApplication($app7);
- $oeAccessNegative->setNegativeOverride(true);
- //CASE 8: une app avec connecteur bluebean où le mec a accès à ses fixed-orderentities, mais pour "all orderentities", on a surchargé pour inverser le comportement (donc surcharge positive pour le mec qui avait pas )
- $app8 = $this->createApp(self::APP_BLUEBEAN_WITH_ACCESS_OVERRIDEN, self::BLUEBEAN_CONNECTOR_NAME);
- $oeAccess = new AccessOrderentity();
- $oeAccess->setUser($franchisee);
- $oeAccess->setOrderentity(null);
- $oeAccess->setApplication($app8);
- $om->flush();
- }
- /**
- * @param string $name
- * @param string $appConnector
- * @return Application
- */
- public function createApp(string $name, string $appConnector): Application
- {
- $app = new Application();
- $app->setName($name);
- $app->setUrl('http://' . $name);
- $app->setSamlNameID('externalID');
- $app->setSlug($name);
- $app->setConnector($appConnector);
- $app->setIsBookmarkApplication(false);
- $this->om->persist($app);
- return $app;
- }
- public function getDependencies()
- {
- return [
- UserFixtures::class,
- OrderentityFixtures::class,
- ];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement