12 use Symfony\Component\Console\Input\InputInterface;
13 use Symfony\Component\Console\Input\InputArgument;
14 use Symfony\Component\Console\Input\InputOption;
15 use Symfony\Component\Console\Output\OutputInterface;
32 private $maintenanceMode;
47 $this->maintenanceMode = $maintenanceMode;
48 $this->ipValidator = $ipValidator;
49 parent::__construct();
62 InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
63 'Allowed IP addresses' 70 InputOption::VALUE_NONE,
71 'Clear allowed IP addresses' 76 InputOption::VALUE_NONE,
77 'Add the IP address to existing list' 80 $this->setName(
'maintenance:allow-ips')
81 ->setDescription(
'Sets maintenance mode exempt IPs')
91 if (!$input->getOption(self::INPUT_KEY_NONE)) {
92 $addresses = $input->getArgument(self::INPUT_KEY_IP);
94 if (!empty($messages)) {
95 $output->writeln(
'<error>' . implode(
'</error>' . PHP_EOL .
'<error>', $messages));
97 return \Magento\Framework\Console\Cli::RETURN_FAILURE;
101 if ($input->getOption(self::INPUT_KEY_ADD)) {
104 $this->maintenanceMode->setAddresses(implode(
',',
$addresses));
106 '<info>Set exempt IP-addresses: ' . implode(
' ', $this->maintenanceMode->getAddressInfo()) .
111 $this->maintenanceMode->setAddresses(
'');
112 $output->writeln(
'<info>Set exempt IP-addresses: none</info>');
114 return \Magento\Framework\Console\Cli::RETURN_SUCCESS;
125 return $this->ipValidator->validateIps(
$addresses,
false);
execute(InputInterface $input, OutputInterface $output)
validate(array $addresses)
__construct(MaintenanceMode $maintenanceMode, IpValidator $ipValidator)