Пример #1
0
 public function verifyEmailField($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     if (isset($data["email_confirm"]) && $data["email"] != $data["email_confirm"]) {
         $context->addViolation(Translator::getInstance()->trans("email confirmation is not the same as email field"));
     }
 }
 public function verifyPasswordField($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     if ($data["password"] != $data["password_confirm"]) {
         $context->addViolation(Translator::getInstance()->trans("password confirmation is not the same as password field"));
     }
 }
 public function checkDuplicateRef($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     $count = ProductQuery::create()->filterById($data['id'], Criteria::NOT_EQUAL)->filterByRef($value)->count();
     if ($count > 0) {
         $context->addViolation(Translator::getInstance()->trans("A product with reference %ref already exists. Please choose another reference.", array('%ref' => $value)));
     }
 }
Пример #4
0
 /**
  * If the user select "I'am a new customer", we make sure is email address does not exit in the database.
  */
 public function verifyExistingEmail($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     if ($data["account"] == 0) {
         $customer = CustomerQuery::create()->findOneByEmail($value);
         if ($customer) {
             $context->addViolation(Translator::getInstance()->trans("A user already exists with this email address. Please login or if you've forgotten your password, go to Reset Your Password."));
         }
     }
 }
 public function verifyPasswordField($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     if ($data["password"] != $data["password_confirm"]) {
         $context->addViolation(Translator::getInstance()->trans("password confirmation is not the same as password field"));
     }
     if ($data["password"] !== '' && strlen($data["password"]) < 4) {
         $context->addViolation(Translator::getInstance()->trans("password must be composed of at least 4 characters"));
     }
 }
Пример #6
0
 public function checkCodeUnicity($code, ExecutionContextInterface $context)
 {
     $type = $context->getRoot()->getData()['type'];
     $query = HookQuery::create()->filterByCode($code)->filterByType($type);
     if ($this->form->has('id')) {
         $query->filterById($this->form->getRoot()->getData()['id'], Criteria::NOT_EQUAL);
     }
     if ($query->count() > 0) {
         $context->addViolation(Translator::getInstance()->trans("A Hook with code %name already exists. Please choose another code.", array('%name' => $code)));
     }
 }
Пример #7
0
 public function checkStock($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     if (null === $data["product_sale_elements_id"]) {
         $context->buildViolation(Translator::getInstance()->trans("Invalid product_sale_elements"));
     } else {
         $productSaleElements = ProductSaleElementsQuery::create()->filterById($data["product_sale_elements_id"])->filterByProductId($data["product"])->findOne();
         $product = $productSaleElements->getProduct();
         if ($productSaleElements->getQuantity() < $value && $product->getVirtual() === 0 && ConfigQuery::checkAvailableStock()) {
             $context->addViolation(Translator::getInstance()->trans("quantity value is not valid"));
         }
     }
 }
 public function verifyPasswordField($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     if ($data["password"] === '' && $data["password_confirm"] === '') {
         $context->addViolation("password can't be empty");
     }
     if ($data["password"] != $data["password_confirm"]) {
         $context->addViolation("password confirmation is not the same as password field");
     }
     $minLength = ConfigQuery::getMinimuAdminPasswordLength();
     if (strlen($data["password"]) < $minLength) {
         $context->addViolation("password must be composed of at least {$minLength} characters");
     }
 }
 function it_adds_violation_with_non_unique_value_from_form_data_and_value_comes_from_memory($uniqueValuesSet, ProductRepositoryInterface $productRepository, ProductValueInterface $uniqueValue, AttributeInterface $uniqueAttribute, ExecutionContextInterface $context, UniqueValue $constraint, ProductInterface $product, Form $form, ConstraintViolationBuilderInterface $violation)
 {
     $context->getRoot()->willReturn($form);
     $form->getData()->willReturn($product);
     $product->getValue('unique_attribute')->willReturn($uniqueValue);
     $uniqueValue->getAttribute()->willReturn($uniqueAttribute);
     $uniqueValue->getProduct()->willReturn($product);
     $uniqueAttribute->isUnique()->willReturn(true);
     $uniqueValue->getData()->willReturn('a content');
     $uniqueAttribute->getCode()->willReturn('unique_attribute');
     $productRepository->valueExists($uniqueValue)->willReturn(false);
     $uniqueValuesSet->addValue($uniqueValue)->willReturn(false);
     $context->buildViolation($constraint->message, Argument::any())->shouldBeCalled()->willReturn($violation);
     $this->validate("my_value", $constraint)->shouldReturn(null);
 }
 public function verifyState($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     if (null !== ($country = CountryQuery::create()->findPk($data['country']))) {
         if ($country->getHasStates()) {
             if (null !== ($state = StateQuery::create()->findPk($data['state']))) {
                 if ($state->getCountryId() !== $country->getId()) {
                     $context->addViolation(Translator::getInstance()->trans("This state doesn't belong to this country."));
                 }
             } else {
                 $context->addViolation(Translator::getInstance()->trans("You should select a state for this country."));
             }
         }
     }
 }
Пример #11
0
 public function checkRequirementField($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     $type = $data["type"];
     if (false !== strpos($context->getPropertyPath(), $type)) {
         // extract requirement type
         if (preg_match('@\\:(.+)\\]@', $context->getPropertyPath(), $matches)) {
             $requirementType = $matches[1];
             if (isset(self::$typeList[$requirementType])) {
                 /** @var TypeInterface $typeClass */
                 $typeClass = self::$typeList[$requirementType];
                 $typeClass->verifyForm($value, $context);
                 return;
             }
         }
         $context->addViolation(Translator::getInstance()->trans("Impossible to check value `%value` for `%type` type", ['%value' => $value, '%type' => $type]));
     }
 }
Пример #12
0
 public function validateIncludeLangUrl($val, ExecutionContextInterface $context)
 {
     if ($val) {
         return;
     }
     $entityManager = $this->getConfigurationPool()->getContainer()->get('doctrine.orm.entity_manager');
     /** @var Office $object */
     $object = $this->getSubject();
     /** @var Form $form */
     $form = $context->getRoot();
     $host = $form->get('host')->getData();
     /** @var Office[] $offices */
     $offices = $entityManager->getRepository('OctavaMuiBundle:Office')->getOfficesByHost($host, $object->getId());
     foreach ($offices as $office) {
         if (!$office->getIncludeLangInUrl()) {
             $context->buildViolation($this->trans('admin.error.office_host_exists', ['{host}' => $host, '{alias}' => $office->getAlias()]))->addViolation();
             break;
         }
     }
 }
 private function getViolation()
 {
     return new ConstraintViolation(null, $this->message, $this->parameters, $this->context->getRoot(), $this->propertyPath, $this->invalidValue, $this->plural, $this->code, $this->constraint, $this->cause);
 }
 /**
  * Check if method is the right one if we want to use automatic inserted templates .
  *
  * @param $value
  * @param  ExecutionContextInterface $context
  *
  * @return bool
  */
 public function verifyTemplates($value, ExecutionContextInterface $context)
 {
     $data = $context->getRoot()->getData();
     if (!empty($data['templates']) && $data['method'] !== BaseHook::INJECT_TEMPLATE_METHOD_NAME) {
         $context->addViolation($this->trans("If you use automatic insert templates, you should use the method %method%", ['%method%' => BaseHook::INJECT_TEMPLATE_METHOD_NAME]));
     }
 }