diff --git a/readme.md b/readme.md index 637565d..4b528f0 100644 --- a/readme.md +++ b/readme.md @@ -74,6 +74,7 @@ php cloud.php show-domains --save-to my-domains.csv - --skip-existing (-s) - Если указан, то скрипт не будет пытаться добавить DNS записи для доменов которые уже добавлены в аккаунт - --enable-proxy (-p) - Если указан, то скрипт будет включать проксирование для добавленных DNS записей - --enable-always-online - Если указан, то скрипт не будет отключать AlwaysOnline для доменов. (по-умолчанию скрипт отключает эту настройку) +- --enable-https - Если указан, вклчюает опцию "Always use Https" (эта опция включает автоматический редирект http -> https) Если не указан параметр `--ip`, то IP должен быть указан для КАЖДОГО домена в файле с доменами (в формате `домен|ip`). Пример такого файла: diff --git a/src/App.php b/src/App.php index 7edaae6..8f82375 100644 --- a/src/App.php +++ b/src/App.php @@ -233,6 +233,22 @@ public function setAlwaysOnlineEnabled($zone_id, $enabled) return $response->result; } + /** + * @param string $zone_id + * @param string $enabled "on" or "off" + * + * @return stdClass + */ + public function setAlwaysUseHttpsEnabled($zone_id, $enabled) + { + $zone = new Zone\Settings($this->api); + + $response = $zone->change_always_use_https($zone_id, $enabled); + $this->checkSuccessApiResponse($response); + + return $response->result; + } + /** * @param Domain $domain * @param bool $proxy diff --git a/src/Console/AddDomainsCommand.php b/src/Console/AddDomainsCommand.php index dd81100..ae42d1c 100644 --- a/src/Console/AddDomainsCommand.php +++ b/src/Console/AddDomainsCommand.php @@ -21,6 +21,7 @@ protected function configure() $this->addOption('skip-existing', 's', InputOption::VALUE_NONE, 'Skip existing domains'); $this->addOption('enable-proxy', 'p', InputOption::VALUE_NONE, 'Enable CloudFlare proxy for DNS records'); $this->addOption('enable-always-online', null, InputOption::VALUE_NONE, 'Skip disabling Always Online'); + $this->addOption('enable-https', null, InputOption::VALUE_NONE, 'Enable "Always use HTTPS" option'); } protected function process(InputInterface $input, OutputInterface $output) @@ -31,6 +32,7 @@ protected function process(InputInterface $input, OutputInterface $output) $skip = (bool)$input->getOption('skip-existing'); $proxy = (bool)$input->getOption('enable-proxy'); $always_online = (bool)$input->getOption('enable-always-online'); + $enable_https = (bool)$input->getOption('enable-https'); $domains = $this->app->readDomains($domains_file); @@ -65,6 +67,12 @@ protected function process(InputInterface $input, OutputInterface $output) $output->writeln("success"); } + if ($enable_https) { + $output->write("Enabling \"Always use HTTPS\" option for '{$domain->domain}' ... "); + $this->app->setAlwaysUseHttpsEnabled($domain_info['id'], "on"); + $output->writeln("success"); + } + $output->writeln("==============================="); } catch (Exception $e) { $output->writeln("error. Message: " . $e->getMessage()); diff --git a/src/Version.php b/src/Version.php index 3d3a7eb..7e4defc 100644 --- a/src/Version.php +++ b/src/Version.php @@ -4,6 +4,6 @@ class Version { - const VERSION = "2.0.0"; + const VERSION = "2.0.1"; const USER_AGENT = "CloudFlareImport"; } \ No newline at end of file