![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-backend/Console/Command/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Backend\Console\Command; use Magento\Framework\App\MaintenanceMode; use Magento\Framework\Console\Cli; use Magento\Setup\Console\Command\AbstractSetupCommand; use Magento\Backend\Model\Validator\IpValidator; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; /** * General maintenance command. */ abstract class AbstractMaintenanceCommand extends AbstractSetupCommand { /** * Names of input option */ const INPUT_KEY_IP = 'ip'; /** * @var MaintenanceMode */ protected $maintenanceMode; /** * @var IpValidator */ protected $ipValidator; /** * Constructor * * @param MaintenanceMode $maintenanceMode * @param IpValidator $ipValidator */ public function __construct(MaintenanceMode $maintenanceMode, IpValidator $ipValidator) { $this->maintenanceMode = $maintenanceMode; $this->ipValidator = $ipValidator; parent::__construct(); } /** * Initialization of the command * * @return void */ protected function configure() { $options = [ new InputOption( self::INPUT_KEY_IP, null, InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED, "Allowed IP addresses (use 'none' to clear allowed IP list)" ), ]; $this->setDefinition($options); parent::configure(); } /** * Get maintenance mode to set * * @return bool */ abstract protected function isEnable(); /** * Get display string after mode is set * * @return string */ abstract protected function getDisplayString(); /** * @inheritDoc */ protected function execute(InputInterface $input, OutputInterface $output): int { $addresses = $input->getOption(self::INPUT_KEY_IP); $messages = $this->validate($addresses); if (!empty($messages)) { $output->writeln('<error>' . implode('</error>' . PHP_EOL . '<error>', $messages)); // We must have an exit code higher than zero to indicate something was wrong return Cli::RETURN_FAILURE; } $this->maintenanceMode->set($this->isEnable()); $output->writeln($this->getDisplayString()); if (!empty($addresses)) { $addresses = implode(',', $addresses); $addresses = ('none' === $addresses) ? '' : $addresses; $this->maintenanceMode->setAddresses($addresses); $output->writeln( '<info>Set exempt IP-addresses: ' . (implode(', ', $this->maintenanceMode->getAddressInfo()) ?: 'none') . '</info>' ); } return Cli::RETURN_SUCCESS; } /** * Validates IP addresses and return error messages * * @param string[] $addresses * @return string[] */ protected function validate(array $addresses) { return $this->ipValidator->validateIps($addresses, true); } }