HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/magento/module-cms/Model/Wysiwyg/Validator.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

declare(strict_types=1);

namespace Magento\Cms\Model\Wysiwyg;

use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\Message\ManagerInterface;
use Magento\Framework\Message\MessageInterface;
use Magento\Framework\Validation\ValidationException;
use Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface;
use Psr\Log\LoggerInterface;
use Magento\Framework\Message\Factory as MessageFactory;

/**
 * Processes backend validator results.
 */
class Validator implements WYSIWYGValidatorInterface
{
    public const CONFIG_PATH_THROW_EXCEPTION = 'cms/wysiwyg/force_valid';

    /**
     * @var WYSIWYGValidatorInterface
     */
    private $validator;

    /**
     * @var ManagerInterface
     */
    private $messages;

    /**
     * @var ScopeConfigInterface
     */
    private $config;

    /**
     * @var LoggerInterface
     */
    private $logger;

    /**
     * @var MessageFactory
     */
    private $messageFactory;

    /**
     * @param WYSIWYGValidatorInterface $validator
     * @param ManagerInterface $messages
     * @param ScopeConfigInterface $config
     * @param LoggerInterface $logger
     * @param MessageFactory $messageFactory
     */
    public function __construct(
        WYSIWYGValidatorInterface $validator,
        ManagerInterface $messages,
        ScopeConfigInterface $config,
        LoggerInterface $logger,
        MessageFactory $messageFactory
    ) {
        $this->validator = $validator;
        $this->messages = $messages;
        $this->config = $config;
        $this->logger = $logger;
        $this->messageFactory = $messageFactory;
    }

    /**
     * @inheritDoc
     */
    public function validate(string $content): void
    {
        $throwException = $this->config->isSetFlag(self::CONFIG_PATH_THROW_EXCEPTION);
        try {
            $this->validator->validate($content);
        } catch (ValidationException $exception) {
            if ($throwException) {
                throw $exception;
            } else {
                $this->messages->addUniqueMessages(
                    [
                        $this->messageFactory->create(
                            MessageInterface::TYPE_WARNING,
                            (string)__(
                                'Temporarily allowed to save HTML value that contains restricted elements. %1',
                                $exception->getMessage()
                            )
                        )
                    ]
                );
            }
        } catch (\Throwable $exception) {
            if ($throwException) {
                throw $exception;
            } else {
                $this->messages->addUniqueMessages(
                    [
                        $this->messageFactory->create(
                            MessageInterface::TYPE_WARNING,
                            (string)__('Invalid HTML provided')
                        )
                    ]
                );
                $this->logger->error($exception);
            }
        }
    }
}