public function load(ObjectManager $manager) { $data = $this->container->get('ilioscore.dataloader.permission')->getAll(); foreach ($data as $arr) { $entity = new Permission(); $entity->setId($arr['id']); $entity->setUser($this->getReference('users' . $arr['user'])); $entity->setTableName($arr['tableName']); $entity->setTableRowId($arr['tableRowId']); $entity->setCanRead($arr['canRead']); $entity->setCanWrite($arr['canWrite']); $manager->persist($entity); $this->addReference('permissions' . $arr['id'], $entity); } $manager->flush(); }
/** * @covers \Ilios\CoreBundle\Entity\Manager\PermissionManager::userHasReadPermissionToCoursesInSchool */ public function testUserHasReadPermissionToCoursesBySchool() { $schoolA = new School(); $schoolA->setId(100); $schoolB = new School(); $schoolB->setId(200); $schoolC = new School(); $schoolC->setId(300); $courseA = new Course(); $courseA->setId(1); $schoolA->addCourse($courseA); $courseB = new Course(); $courseB->setId(2); $schoolB->addCourse($courseB); $coursePermissionA = new Permission(); $coursePermissionA->setTableRowId(1); $user = new User(); $class = 'Ilios\\CoreBundle\\Entity\\Permission'; $em = m::mock('Doctrine\\ORM\\EntityManager'); $repository = m::mock('Doctrine\\ORM\\Repository')->shouldReceive('findOneBy')->with(['tableName' => 'course', 'canRead' => true, 'user' => $user, 'tableRowId' => $courseA->getId()], null)->andReturn([$coursePermissionA])->mock(); $registry = m::mock('Doctrine\\Bundle\\DoctrineBundle\\Registry')->shouldReceive('getManagerForClass')->andReturn($em)->shouldReceive('getRepository')->andReturn($repository)->mock(); $manager = new PermissionManager($registry, $class); $this->assertFalse($manager->userHasReadPermissionToCoursesInSchool($user, null)); $this->assertTrue($manager->userHasReadPermissionToCoursesInSchool($user, $schoolA)); $repository = m::mock('Doctrine\\ORM\\Repository')->shouldReceive('findOneBy')->with(['tableName' => 'course', 'canRead' => true, 'user' => $user, 'tableRowId' => $courseB->getId()], null)->andReturn(null)->mock(); $registry = m::mock('Doctrine\\Bundle\\DoctrineBundle\\Registry')->shouldReceive('getManagerForClass')->andReturn($em)->shouldReceive('getRepository')->andReturn($repository)->mock(); $manager = new PermissionManager($registry, $class); $this->assertFalse($manager->userHasReadPermissionToCoursesInSchool($user, $schoolB)); $repository = m::mock('Doctrine\\ORM\\Repository')->shouldNotReceive('findOneBy')->mock(); $registry = m::mock('Doctrine\\Bundle\\DoctrineBundle\\Registry')->shouldReceive('getManagerForClass')->andReturn($em)->shouldReceive('getRepository')->andReturn($repository)->mock(); $manager = new PermissionManager($registry, $class); $this->assertFalse($manager->userHasReadPermissionToCoursesInSchool($user, $schoolC)); }