Ejemplo n.º 1
0
 /**
  * Create new user
  *
  * @return \Zend\Http\Response|ViewModel
  */
 public function registerAction()
 {
     $form = new FormUser();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $service = $this->getServiceLocator()->get('User\\Service\\User');
             $validator = new ObjectExists(array('object_repository' => $this->getEm()->getRepository('User\\Entity\\User'), 'fields' => array('email')));
             if ($validator->isValid(array('email' => $request->getPost()->toArray()))) {
                 $this->flashMessenger()->addErrorMessage('Email Já cadastrado em nosso sistemas!');
                 if ($this->flashMessenger()->hasErrorMessages()) {
                     return new ViewModel(['form' => $form, 'error' => $this->flashMessenger()->getErrorMessages()]);
                 }
                 return new ViewModel(['form' => $form, 'error' => $this->flashMessenger()->getErrorMessages()]);
             }
             if ($service->insert($request->getPost()->toArray())) {
                 $this->flashMessenger()->addSuccessMessage('Usuário cadastrado com sucesso! Eviamos uma ativação para seu email!!!');
             } else {
                 $this->flashMessenger()->addErrorMessage('Erro ao fazer o cadastro!!!');
             }
             return $this->redirect()->toRoute('user-register', ['controller' => 'User\\Controller\\Index']);
         }
     }
     if ($this->flashMessenger()->hasSuccessMessages()) {
         return new ViewModel(['form' => $form, 'success' => $this->flashMessenger()->getSuccessMessages()]);
     }
     if ($this->flashMessenger()->hasErrorMessages()) {
         return new ViewModel(['form' => $form, 'error' => $this->flashMessenger()->getErrorMessages()]);
     }
     return new ViewModel(['form' => $form]);
 }
Ejemplo n.º 2
0
 /**
  * {@inheritDoc}
  */
 public function isValid($value)
 {
     $value = null === $value ? [null] : (array) $value;
     $valueCount = count($value);
     $fieldsCount = count($this->fields);
     if ($valueCount === 1 && $fieldsCount === 1 || $valueCount !== 1 && $fieldsCount !== 1 && $valueCount !== $fieldsCount) {
         return parent::isValid($value);
     }
     if ($valueCount > $fieldsCount) {
         $field = reset($this->fields);
         $match = $this->objectRepository->findOneBy([$field => $value]);
     } else {
         if ($valueCount < $fieldsCount) {
             $value = array_fill(0, $fieldsCount, array_shift($value));
         }
         $value = $this->cleanSearchValue($value);
         $qb = $this->objectRepository->createQueryBuilder('o');
         $orX = $qb->expr()->orX();
         foreach ($this->fields as $key => $field) {
             $orX->add("o.{$field} = ?{$key}");
             $qb->setParameter($key, array_shift($value));
         }
         $className = $this->objectRepository->getClassName();
         $object = new $className();
         $meta = $qb->getObjectManager()->getClassMetadata($className);
         $identifier = $meta->getSingleIdentifierFieldName();
         $match = $qb->select("count(o.{$identifier})")->where($orX)->getQuery()->getSingleScalarResult();
     }
     if ($match) {
         return true;
     }
     $this->error(self::ERROR_NO_OBJECT_FOUND, $value);
     return false;
 }
Ejemplo n.º 3
0
 public function testWillNotValidateOnFieldKeysMismatch()
 {
     $this->setExpectedException('Zend\\Validator\\Exception\\RuntimeException', 'Field "field2" was not provided, but was expected since the configured field lists needs it for validation');
     $validator = new ObjectExists(array('object_repository' => $this->getMock('Doctrine\\Common\\Persistence\\ObjectRepository'), 'fields' => array('field1', 'field2')));
     $validator->isValid(array('field1' => 'field1Value'));
 }
 public function testErrorMessageIsStringInsteadArray()
 {
     $repository = $this->getMock('Doctrine\\Common\\Persistence\\ObjectRepository');
     $validator = new ObjectExists(array('object_repository' => $this->getMock('Doctrine\\Common\\Persistence\\ObjectRepository'), 'fields' => 'field'));
     $this->assertFalse($validator->isValid('value'));
     $messageTemplates = $validator->getMessageTemplates();
     $expectedMessage = str_replace('%value%', 'value', $messageTemplates[ObjectExists::ERROR_NO_OBJECT_FOUND]);
     $messages = $validator->getMessages();
     $receivedMessage = $messages[ObjectExists::ERROR_NO_OBJECT_FOUND];
     $this->assertTrue($expectedMessage == $receivedMessage);
 }