Spaces:
No application file
No application file
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(); | |
} | |
} | |
} | |