Spaces:
No application file
No application file
File size: 1,258 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php
namespace Mautic\FormBundle\Validator\Constraint;
use Mautic\CoreBundle\Helper\CoreParametersHelper;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class FileExtensionConstraintValidator extends ConstraintValidator
{
public function __construct(
private CoreParametersHelper $coreParametersHelper
) {
}
/**
* Checks if the passed value is valid.
*
* @param mixed $value The value that should be validated
* @param Constraint $constraint The constraint for the validation
*/
public function validate($value, Constraint $constraint): void
{
if (!is_array($value)) {
$this->context->buildViolation($constraint->message)
->setParameter('{{ forbidden }}', '')
->addViolation();
}
$blacklistedExtensions = $this->coreParametersHelper->get('blacklisted_extensions');
$intersect = array_intersect($value, $blacklistedExtensions);
if ($intersect) {
$this->context->buildViolation($constraint->message)
->setParameter('{{ forbidden }}', implode(', ', $intersect))
->addViolation();
}
}
}
|