/** * Test the getters and setters */ public function testGettersAndSetters() { $this->indexItem = new IndexItem($this->defaultData['objectType'], $this->defaultData['otherId'], $this->defaultData['field'], $this->defaultData['value']); $this->assertEquals($this->defaultData['objectType'], $this->indexItem->getObjectType()); $this->assertEquals($this->defaultData['otherId'], $this->indexItem->getOtherId()); $this->assertEquals($this->defaultData['field'], $this->indexItem->getField()); $this->assertEquals($this->defaultData['value'], $this->indexItem->getValue()); }
public function testCreateMultipleObjectsBasedOnPropertiesFromObject() { $properties = array('name' => 'John', 'surname' => 'Doe'); $object = new Person('John', 'Doe'); $indexItems = IndexItem::createMultipleObjectsBasedOnProperties($this->defaultData['objectType'], $this->defaultData['otherId'], array_keys($properties), $object); foreach ($indexItems as $index) { /** @var SumoCoders\FrameworkSearchBundle\Entity\IndexItem $index*/ $this->assertInstanceOf('\\SumoCoders\\FrameworkSearchBundle\\Entity\\IndexItem', $index); $this->assertEquals($properties[$index->getField()], $index->getValue()); } }
/** * Edit a user * * @Route("/{id}/edit", requirements={"id"= "\d+"}) * @Method({"GET|POST"}) * @Template() * * @param Request $request * @param int $id * @return array */ public function editAction(Request $request, $id) { // fix the breadCrumb $this->get('framework.breadcrumb_builder')->extractItemsBasedOnUri($this->generateUrl('sumocoders_frameworkuser_user_index'), $request->getLocale())->addSimpleItem('user.breadcrumb.edit', $this->generateUrl('sumocoders_frameworkuser_user_edit', array('id' => $id))); $csrfProvider = $this->get('security.csrf.token_manager'); /** @var \Symfony\Component\HttpFoundation\Session\Session $session */ $session = $this->get('session'); /** @var \Symfony\Bundle\FrameworkBundle\Translation\Translator $translator */ $translator = $this->get('translator'); /** @var \SumoCoders\FrameworkUserBundle\Model\FrameworkUserManager $userManager */ $userManager = $this->container->get('fos_user.user_manager'); /** @var \SumoCoders\FrameworkUserBundle\Entity\User $user */ $user = $userManager->findUserBy(array('id' => $id)); /** @var \SumoCoders\FrameworkUserBundle\Entity\User $currentUser */ $currentUser = $this->get('security.context')->getToken()->getUser(); // validate the user if (!$user) { throw new NotFoundHttpException($translator->trans('core.errors.notFound')); } // if the current user is editing itself it should see the password field if ($currentUser->getId() == $user->getId()) { $type = new OwnUserType('\\SumoCoders\\FrameworkUserBundle\\Entity\\User'); } else { $type = new OtherUserType('\\SumoCoders\\FrameworkUserBundle\\Entity\\User'); } $form = $this->createForm($type, $user); $form->add('roles', 'choice', array('choices' => $this->getExistingRoles(), 'data' => $user->getRoles(), 'label' => 'Roles', 'expanded' => true, 'multiple' => true)); $form->handleRequest($request); if ($form->isValid()) { $user = $form->getData(); $userManager->updateUser($user); if (array_key_exists('SumoCodersFrameworkSearchBundle', $this->container->getParameter('kernel.bundles'))) { $searchIndexItems = \SumoCoders\FrameworkSearchBundle\Entity\IndexItem::createMultipleObjectsBasedOnProperties('SumoCoders\\FrameworkUserBundle\\Entity\\User', $user->getId(), array('username', 'email'), $user); $event = new \SumoCoders\FrameworkSearchBundle\Event\IndexUpdateEvent(); $event->setObjects($searchIndexItems); $this->get('event_dispatcher')->dispatch('framework_search.index_update', $event); } $session->getFlashBag()->add('success', $translator->trans('user.flash.success.edit', array('%username%' => $user->getUsername()))); return $this->redirect($this->generateUrl('sumocoders_frameworkuser_user_index')); } if ($user->isEnabled()) { $blockUnblockForm = $this->createBlockUnblockForm($user, 'block'); } else { $blockUnblockForm = $this->createBlockUnblockForm($user, 'unblock'); } return array('form' => $form->createView(), 'token' => $csrfProvider->generateCsrfToken('block_unblock'), 'user' => $user, 'form_block_unblock' => $blockUnblockForm->createView()); }