public function validate(ErrorElement $errorElement, $object) { //Verificar que el usuario tiene una agencia asignada $usuario = $this->getConfigurationPool()->getContainer()->get('security.context')->getToken()->getUser(); if ($usuario->getAgencia() == null) { $errorElement->with('nombre')->addViolation($this->getTranslator()->trans('_usuario_no_agencia_'))->end(); } //Verificar que todos los campos esten configurados foreach ($object->getVariables() as $variable) { $campos_no_configurados = $this->getModelManager()->findBy('IndicadoresBundle:Campo', array('origenDato' => $variable->getOrigenDatos(), 'significado' => null)); if (count($campos_no_configurados) > 0) { $errorElement->with('variables')->addViolation($variable->getIniciales() . ': ' . $this->getTranslator()->trans('origen_no_configurado'))->end(); } } //Obtener las variables marcadas $variables_sel = array(); foreach ($object->getVariables() as $variable) { $variables_sel[] = $variable->getIniciales(); } if (count($variables_sel) == 0) { $errorElement->with('variables')->addViolation($this->getTranslator()->trans('elija_al_menos_una_variable'))->end(); } else { //Obtener las variables utilizadas en la fórmula //Quitar todos los espacios en blanco de la fórmula $vars_formula = array(); $formula = str_replace(' ', '', $object->getFormula()); preg_match_all('/\\{([\\w]+)\\}/', $formula, $vars_formula); //Para que la fórmula sea válida la cantidad de variables seleccionadas //debe coincidir con las utilizadas en la fórmula if (count(array_diff($variables_sel, $vars_formula[1])) > 0 or count(array_diff($vars_formula[1], $variables_sel)) > 0) { $errorElement->with('formula')->addViolation($this->getTranslator()->trans('vars_sel_diff_vars_formula'))->end(); } // ******** Verificar si matematicamente la fórmula es correcta // 1) Sustituir las variables por valores aleatorios entre 1 y 100 // Quitar las palabras permitidas $formula_check = str_replace(array('AVG', 'MAX', 'MIN', 'SUM', 'COUNT'), array('', '', '', '', ''), strtoupper($object->getFormula())); $formula_valida = true; $result = ''; foreach ($vars_formula[0] as $var) { $formula_check = str_replace($var, rand(1, 100), $formula_check); } //Verificar que no tenga letras, para evitar un ataque de inyección if (preg_match('/[A-Z]+/i', $formula_check) != 0) { $formula_valida = false; $mensaje = 'sintaxis_invalida_variables_entre_llaves'; } else { //evaluar la formula, evitar que se muestren los errores por si los lleva ob_start(); $test = eval('$result=' . $formula_check . ';'); ob_end_clean(); if (!is_numeric($result)) { $formula_valida = false; $mensaje = 'sintaxis_invalida'; } } if ($formula_valida == false) { $errorElement->with('formula')->addViolation($this->getTranslator()->trans($mensaje))->end(); } } }
public function validate(ErrorElement $errorElement, $object) { if ($object->getEsFusionado() == false) { if ($object->file == '' and $object->getArchivoNombre() == '' and $object->getSentenciaSql() == '') { $errorElement->with('sentenciaSql')->addViolation($this->getTranslator()->trans('validacion.sentencia_o_archivo'))->end(); } if ($object->file != '' and $object->getSentenciaSql() != '') { $errorElement->with('sentenciaSql')->addViolation($this->getTranslator()->trans('validacion.sentencia_o_archivo_no_ambas'))->end(); } echo count($object->getConexiones()); if ($object->getSentenciaSql() != '' and count($object->getConexiones()) == 0) { $errorElement->with('conexiones')->addViolation($this->getTranslator()->trans('validacion.requerido'))->end(); } } // Revisar la validación, no me reconoce los archivos con los tipos que debería /* * 'application/octet-stream', 'text/comma-separated-values', 'application/zip', 'text/x-c++' */ /* $errorElement ->with('file') ->assertFile(array( 'mimeTypes' => array("application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", 'text/csv','application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.ms-office' ))) ->end() ; */ return true; }
public function validate(ErrorElement $errorElement, $obj) { $errorElement->with('name')->assertLength(array('max' => 255))->end(); if (empty($obj->getPost()->getSlug())) { $obj->getPost()->setSlug($obj->getPost()->getTitle()); } }
public function validate(ErrorElement $errorElement, $object) { /** @var Administrator $object */ if (!$object->getId()) { $errorElement->with('plainPassword')->addConstraint(new NotBlank())->end(); } }
/** * {@inheritdoc} */ public function validateBlock(ErrorElement $errorElement, BlockInterface $block) { if (($name = $block->getSetting('menu_name')) && $name !== '' && !$this->menuProvider->has($name)) { // If we specified a menu_name, check that it exists $errorElement->with('menu_name')->addViolation('sonata.block.menu.not_existing', array('name' => $name))->end(); } }
public function validate(ErrorElement $errorElement, $object) { //Marcó la opción que se usará en catálogo pero no ha elegido un catálog if ($object->getUsoEnCatalogo() == true and $object->getCatalogo() != '') { $errorElement->with('catalogo')->addViolation($this->getTranslator()->trans('no_catalogo_y_describir_catalogo'))->end(); } }
/** * @{inheritdoc} */ public function validate(ErrorElement $errorElement, $object) { // find object with toLink $fromPath = $this->modelManager->findOneBy($this->getClass(), array('fromPath' => $object->getFromPath())); // @formatter:off if (null !== $fromPath && $fromPath->getId() !== $object->getId()) { $errorElement->with('fromPath')->addViolation('This link is already being redirected somewhere else!')->end(); } if (substr($object->getToPath(), 0, 1) !== '/') { $errorElement->with('toPath')->addViolation('Invalid path! A path start with a "/"')->end(); } if (substr($object->getFromPath(), 0, 1) !== '/') { $errorElement->with('fromPath')->addViolation('Invalid path! A path start with a "/"')->end(); } // @formatter:on }
public function validate(ErrorElement $errorElement, $object) { $campos_no_configurados = $this->getModelManager()->findBy('IndicadoresBundle:Campo', array('origenDato' => $object->getOrigenDatos(), 'significado' => null)); if (count($campos_no_configurados) > 0) { $errorElement->with('origenDatos')->addViolation($this->getTranslator()->trans('origen_no_configurado'))->end(); } }
public function validate(ErrorElement $errorElement, $object) { if (!($object->getCategoryStaticContent() && !$object->getStaticContent() && !$object->getEmission() && !$object->getPodcast() && !$object->getCustumItem() || !$object->getCategoryStaticContent() && $object->getStaticContent() && !$object->getEmission() && !$object->getPodcast() && !$object->getCustumItem() || !$object->getCategoryStaticContent() && !$object->getStaticContent() && $object->getEmission() && !$object->getPodcast() && !$object->getCustumItem() || !$object->getCategoryStaticContent() && !$object->getStaticContent() && !$object->getEmission() && $object->getPodcast() && !$object->getCustumItem() || !$object->getCategoryStaticContent() && !$object->getStaticContent() && !$object->getEmission() && !$object->getPodcast() && $object->getCustumItem())) { $errorElement->with('value')->addViolation('un item doit contenir un et un seul champ de référence')->end(); } /* $errorElement ->with('title') ->assertMaxLength(array('limit' => 32)) ->end()*/ }
/** * @param ErrorElement $errorElement * @param Barcode $object */ public function validate(ErrorElement $errorElement, $object) { if (!$object->getWithCounter()) { if ($object->getBasecode() < 0 || $object->getBasecode() > 99999) { $errorElement->with('basecode')->addViolation('Recuerde que son cinco dígitos desde 00000 a 99999')->end(); } else { /** @var QueryBuilder $query */ $query = $this->getModelManager()->createQuery($this->getClass(), 'o'); $barcode = $query->where('o.code = :code')->setParameter('code', $object->generateCode())->getQuery()->execute(); if (!empty($barcode)) { $errorElement->with('basecode')->addViolation('El código está en uso')->end(); } } } else { do { $object->getTrademark()->incCounter(); $query = $this->getModelManager()->createQuery($this->getClass(), 'o'); $barcode = $query->where('o.code = :code')->setParameter('code', $object->generateCode())->getQuery()->execute(); } while (!empty($barcode)); } }
/** * The validator asks each product repository to validate the related basket element. * * @param BasketInterface $basket * @param Constraint $constraint */ public function validate($basket, Constraint $constraint) { foreach ($basket->getBasketElements() as $pos => $basketElement) { // create a new ErrorElement object $errorElement = new ErrorElement($basket, $this->constraintValidatorFactory, $this->context, $this->context->getGroup()); $errorElement->with('basketElements[' . $pos . ']'); // validate the basket element through the related service provider $this->productPool->getProvider($basketElement->getProductCode())->validateFormBasketElement($errorElement, $basketElement, $basket); } if (count($this->context->getViolations()) > 0) { $this->context->addViolationAt('basketElements', $constraint->message); } }
public function validate(ErrorElement $errorElement, $object) { $vars_formula = array(); $formula = str_replace(' ', '', $object->getFormula()); preg_match_all('/(\\{[\\w]+\\})/', $formula, $vars_formula); //Verificar que haya utilizado solo campos existentes en el origen de datos foreach ($object->getOrigenDato()->getCampos() as $campo) { if ($campo->getSignificado() and $campo->getTipoCampo()) { $campos[$campo->getSignificado()->getCodigo()] = $campo->getTipoCampo()->getCodigo(); } } //Verificar que todas las variables sean campos del origen de datos foreach ($vars_formula[0] as $var) { if (!array_key_exists(str_replace(array('{', '}'), '', $var), $campos)) { $errorElement->with('formula')->addViolation('<span style="color:red">' . $var . '</span> ' . $this->getTranslator()->trans('_variable_no_campo_'))->end(); return; } } // ******** Verificar si matematicamente la fórmula es correcta // 1) Sustituir las variables por valores aleatorios entre 1 y 100 foreach ($vars_formula[0] as $var) { $variable = str_replace(array('{', '}'), '', $var); if ($campos[$variable] == 'integer' or $campos[$variable] == 'float') { $formula = str_replace($var, rand(1, 100), $formula); } elseif ($campos[$variable] == 'date') { $formula = str_replace($var, ' current_date ', $formula); } else { $formula = str_replace($var, "'texto'", $formula); } } //evaluar la formula try { $sql = 'SELECT ' . $formula; $this->getConfigurationPool()->getContainer()->get('doctrine')->getEntityManager()->getConnection()->executeQuery($sql); } catch (\Doctrine\DBAL\DBALException $exc) { $errorElement->with('formula')->addViolation($this->getTranslator()->trans('sintaxis_invalida') . $exc->getMessage())->end(); } }
public function validate(ErrorElement $errorElement, $object) { if ($object->getUbicacion() != null) { // Si elije una ubicación en particular para este compromiso // solo debe seleccionar el establecimiento al que pertenece // la ubicación foreach ($object->getEstablecimientos() as $e) { if ($e->getCodigo() != $object->getUbicacion()->getEstablecimiento()->getCodigo()) { $errorElement->with('ubicacion')->addViolation($this->getTranslator()->trans('_solo_establecimiento_de_ubicacion_'))->end()->with('establecimientos')->addViolation($this->getTranslator()->trans('_solo_establecimiento_de_ubicacion_'))->end(); break; } } } }
public function validate(ErrorElement $errorElement, $song) { if (empty($song->getLyrics())) { $musixmatchApi = $this->container->get('tncy_school.musixmatchapi'); $musixmatch = json_decode($musixmatchApi->get_musixmatch_lyrics($song->getArtist(), $song->getName())); if ($musixmatch->message->header->status_code == 200) { $lyrics = $musixmatch->message->body->lyrics->lyrics_body; $song->setLyrics($lyrics); } else { $error = "Error: Any lyrics was found for " . $song->getArtist() . " : " . $song->getName(); $errorElement->with('name')->addViolation($error)->end()->with('artist')->addViolation($error)->end(); } } //TODO: rajouter un message si les mots à trouver est vide => error }
public function validateBlock(ErrorElement $errorElement, BlockInterface $block) { $errorElement->with('settings.url')->assertNotNull(array())->assertNotBlank()->end()->with('settings.title')->assertNotNull(array())->assertNotBlank()->assertMaxLength(array('limit' => 50))->end(); }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('name')->assertLength(array('max' => 100))->assertNotBlank()->end(); }
/** * {@inheritdoc} */ public function validateBlock(ErrorElement $errorElement, BlockInterface $block) { $errorElement->with('settings[blockId]')->addConstraint(new NotBlank())->end(); }
/** * {@inheritdoc} */ public function validateBlock(ErrorElement $errorElement, BlockInterface $block) { $errorElement->with('settings[url]')->assertNotNull(array())->assertNotBlank()->end()->with('settings[title]')->assertNotNull(array())->assertNotBlank()->assertLength(array('max' => 50))->end(); }
/** * {@inheritdoc} */ public function validate(ErrorElement $errorElement, MediaInterface $media) { if (!$media->getBinaryContent() instanceof \SplFileInfo) { return; } if ($media->getBinaryContent() instanceof UploadedFile) { $fileName = $media->getBinaryContent()->getClientOriginalName(); } elseif ($media->getBinaryContent() instanceof File) { $fileName = $media->getBinaryContent()->getFilename(); } else { throw new \RuntimeException(sprintf('Invalid binary content type: %s', get_class($media->getBinaryContent()))); } if (!in_array(strtolower(pathinfo($fileName, PATHINFO_EXTENSION)), $this->allowedExtensions)) { $errorElement->with('binaryContent')->addViolation('Invalid extensions')->end(); } if (!in_array($media->getBinaryContent()->getMimeType(), $this->allowedMimeTypes)) { $errorElement->with('binaryContent')->addViolation('Invalid mime type : %type%', array('%type%' => $media->getBinaryContent()->getMimeType()))->end(); } }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('title')->assertLength(array('max' => 32))->end(); }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('artist')->assertLength(array('max' => 255))->end()->with('genre')->assertLength(array('max' => 255))->end()->with('label')->assertLength(array('max' => 255))->end()->with('manufacturer')->assertLength(array('max' => 255))->end()->with('publisher')->assertLength(array('max' => 255))->end()->with('releaseDate')->assertDateTime()->end()->with('studio')->assertLength(array('max' => 255))->end()->with('trackSequence')->assertGreaterThan(array('value' => 0))->end()->with('runningTime')->assertGreaterThan(array('value' => 0))->end()->with('title')->assertLength(array('max' => 255))->assertNotNull()->assertNotBlank()->end(); }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('email')->assertEmail()->assertLength(array('max' => 100))->end(); }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('defaultLanguage')->addConstraint(new Callback([$this, 'validateDefaultLanguage']))->end()->with('includeLangInUrl')->addConstraint(new Callback([$this, 'validateIncludeLangUrl']))->end(); }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('artist')->assertLength(array('max' => 255))->end()->with('label')->assertLength(array('max' => 255))->end()->with('manufacturer')->assertLength(array('max' => 255))->end()->with('publisher')->assertLength(array('max' => 255))->end()->with('releaseDate')->assertDateTime()->end()->with('studio')->assertLength(array('max' => 255))->end()->with('title')->assertLength(array('max' => 255))->assertNotNull()->assertNotBlank()->end(); }
public function validate(ErrorElement $errorElement, $obj) { $errorElement->with('description')->assertNotNull()->end(); }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('code')->assertNotBlank()->end(); }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('title')->assertLength(array('max' => 255))->assertNotBlank()->assertNotNull()->end(); }
public function validate(ErrorElement $errorElement, $object) { $errorElement->with('items')->assertValid()->end(); }
public function validate(ErrorElement $errorElement, $object) { /** @var AdminMenu $object */ if ($object->getType() == AdminMenu::TYPE_MODULE) { $errorElement->with('serviceId')->addConstraint(new NotBlank())->end(); } }
/** * {@inheritdoc} */ public function validateFormBasketElement(ErrorElement $errorElement, BasketElementInterface $basketElement, BasketInterface $basket) { // the item is flagged as deleted, no need to validate the item if ($basketElement->getDelete() || 0 === $basketElement->getQuantity()) { return; } // refresh the product from the database $product = $basketElement->getProduct(); // check if the product is still in database if (!$product) { $errorElement->addViolation('product_not_available'); return; } // check if the product is still enabled if (!$basketElement->getProduct()->getEnabled()) { $errorElement->addViolation('product_not_enabled'); return; } // check if the quantity is numeric if (!is_numeric($basketElement->getQuantity())) { $errorElement->with('quantity')->addViolation('product_quantity_not_numeric')->end(); return; } $errorElement->with('quantity')->assertRange(array('min' => 1, 'max' => $this->getStockAvailable($basketElement->getProduct()), 'minMessage' => 'basket_quantity_limit_min', 'maxMessage' => 'basket_quantity_limit_max'))->end(); }