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
 /**
  * @return $this
  */
 protected function emailExist()
 {
     $recordExistsValidator = new ObjectExists(array('object_repository' => $this->sm->get('Doctrine\\ORM\\EntityManager')->getRepository('User\\Entity\\User'), 'fields' => 'email'));
     $recordExistsValidator->setMessage('User with this email are not exists', ObjectExists::ERROR_NO_OBJECT_FOUND);
     $this->add(array('name' => 'email', 'required' => true, 'validators' => array(array('name' => 'EmailAddress'), $recordExistsValidator), 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim'))));
     return $this;
 }
 /**
  * Forgot form factory
  *
  * @param  ServiceLocatorInterface $serviceLocator
  * @return ForgotForm
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $entityManager = $serviceLocator->get('Doctrine\\ORM\\EntityManager');
     $options = $serviceLocator->get('User\\Password\\Options');
     $zfcUserOptions = $serviceLocator->get('zfcuser_module_options');
     $validator = new ObjectExists(['object_repository' => $entityManager->getRepository($zfcUserOptions->getUserEntityClass()), 'fields' => 'email']);
     $validator->setMessage('The email address you entered was not found.');
     $form = new ForgotForm(null);
     $form->setInputFilter(new ForgotFormFilter($validator, $options));
     return $form;
 }
Ejemplo n.º 4
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.º 5
0
 public function getInputFilter()
 {
     if ($this->filter == null) {
         $this->filter = new InputFilter();
         $inputFilter = parent::getInputFilter();
         $email = new Input('email');
         $email->setRequired(true);
         $email->setAllowEmpty(false);
         $objectExists = new ObjectExists(array('object_repository' => $this->objectManager->getRepository(User::getClass()), 'fields' => 'email'));
         $objectExists->setMessage($this->translator->translate('forgotPassword.email.notExists'), ObjectExists::ERROR_NO_OBJECT_FOUND);
         $emailAddress = new EmailAddress();
         $emailAddress->setMessage($this->translator->translate('forgotPassword.email.invalidFormat'), $emailAddress::INVALID_FORMAT);
         $email->getValidatorChain()->attach($emailAddress, true)->attach($objectExists);
         $this->filter->add($email);
     }
     return $this->filter;
 }
Ejemplo n.º 6
0
 public function __construct(array $options)
 {
     parent::__construct($options);
     if (!isset($options['object_manager']) || !$options['object_manager'] instanceof ObjectManager) {
         if (!array_key_exists('object_manager', $options)) {
             $provided = 'nothing';
         } else {
             if (is_object($options['object_manager'])) {
                 $provided = get_class($options['object_manager']);
             } else {
                 $provided = getType($options['object_manager']);
             }
         }
         throw new Exception\InvalidArgumentException(sprintf('Option "object_manager" is required and must be an instance of' . ' Doctrine\\Common\\Persistence\\ObjectManager, %s given', $provided));
     }
     $this->objectManager = $options['object_manager'];
 }
Ejemplo n.º 7
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);
 }