aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/install/controller/archive_download.php
diff options
context:
space:
mode:
authorjaviexin <javiexin@gmail.com>2017-03-09 16:12:25 +0100
committerGitHub <noreply@github.com>2017-03-09 16:12:25 +0100
commitbd12504f6cf03b36821a5cea2bf77a419496dcdb (patch)
treed30cc3506e1bbdc284dc7cca910c5dac6b927ae0 /phpBB/phpbb/install/controller/archive_download.php
parent96a90d3f81c1fcce3834ee72b7d1b9f76aa9354c (diff)
parent3e9f12d12d7dbdd2cee39425e81b5fdf66fcfbc8 (diff)
downloadforums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.tar
forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.tar.gz
forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.tar.bz2
forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.tar.xz
forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.zip
Merge branch '3.2.x' into ticket/15068
Diffstat (limited to 'phpBB/phpbb/install/controller/archive_download.php')
-rw-r--r--phpBB/phpbb/install/controller/archive_download.php93
1 files changed, 93 insertions, 0 deletions
diff --git a/phpBB/phpbb/install/controller/archive_download.php b/phpBB/phpbb/install/controller/archive_download.php
new file mode 100644
index 0000000000..eabc0a9976
--- /dev/null
+++ b/phpBB/phpbb/install/controller/archive_download.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\install\controller;
+
+use phpbb\exception\http_exception;
+use phpbb\install\helper\config;
+use Symfony\Component\HttpFoundation\BinaryFileResponse;
+use Symfony\Component\HttpFoundation\ResponseHeaderBag;
+
+class archive_download
+{
+ /**
+ * @var config
+ */
+ protected $installer_config;
+
+ /**
+ * Constructor
+ *
+ * @param config $config
+ */
+ public function __construct(config $config)
+ {
+ $this->installer_config = $config;
+ $this->installer_config->load_config();
+ }
+
+ /**
+ * Sends response with the merge conflict archive
+ *
+ * Merge conflicts always have to be resolved manually,
+ * so we use a different archive for that.
+ *
+ * @return BinaryFileResponse
+ */
+ public function conflict_archive()
+ {
+ $filename = $this->installer_config->get('update_file_conflict_archive', '');
+
+ if (empty($filename))
+ {
+ throw new http_exception(404, 'URL_NOT_FOUND');
+ }
+
+ return $this->send_response($filename);
+ }
+
+ /**
+ * Sends response with the updated files' archive
+ *
+ * @return BinaryFileResponse
+ */
+ public function update_archive()
+ {
+ $filename = $this->installer_config->get('update_file_archive', '');
+
+ if (empty($filename))
+ {
+ throw new http_exception(404, 'URL_NOT_FOUND');
+ }
+
+ return $this->send_response($filename);
+ }
+
+ /**
+ * Generates a download response
+ *
+ * @param string $filename Path to the file to download
+ *
+ * @return BinaryFileResponse Response object
+ */
+ private function send_response($filename)
+ {
+ $response = new BinaryFileResponse($filename);
+ $response->setContentDisposition(
+ ResponseHeaderBag::DISPOSITION_ATTACHMENT,
+ basename($filename)
+ );
+
+ return $response;
+ }
+}