/** * Import a Json file (.rzt) containing group. * * @param string $serializedData * * @return bool */ public static function importJsonFile($serializedData) { $groups = GroupCollectionJsonSerializer::deserialize($serializedData); foreach ($groups as $group) { $existingGroup = Kernel::getService('em')->getRepository('RZ\\Roadiz\\Core\\Entities\\Group')->findOneBy(['name' => $group->getName()]); if (null === $existingGroup) { foreach ($group->getRolesEntities() as $role) { /* * then persist each role */ $role = Kernel::getService('em')->getRepository('RZ\\Roadiz\\Core\\Entities\\Role')->findOneByName($role->getName()); } Kernel::getService('em')->persist($group); // Flush before creating group's roles. Kernel::getService('em')->flush(); } else { $existingGroup->getHandler()->diff($group); } Kernel::getService('em')->flush(); } return true; }
/** * Import a Json file (.rzt) containing group. * * @param string $serializedData * @param EntityManager $em * * @return bool */ public static function importJsonFile($serializedData, EntityManager $em) { $serializer = new GroupCollectionJsonSerializer($em); $groups = $serializer->deserialize($serializedData); foreach ($groups as $group) { $existingGroup = $em->getRepository('RZ\\Roadiz\\Core\\Entities\\Group')->findOneBy(['name' => $group->getName()]); if (null === $existingGroup) { foreach ($group->getRolesEntities() as $role) { /* * then persist each role */ $role = $em->getRepository('RZ\\Roadiz\\Core\\Entities\\Role')->findOneByName($role->getName()); } $em->persist($group); // Flush before creating group's roles. $em->flush($group); } else { $existingGroup->getHandler()->diff($group); $em->flush($existingGroup); } } return true; }