summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/composer/composer/autoload_classmap.php1
-rw-r--r--lib/composer/composer/autoload_static.php1
-rw-r--r--lib/private/Setup.php11
-rw-r--r--lib/public/AppFramework/Http/ZipResponse.php87
4 files changed, 97 insertions, 3 deletions
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index 589a263c540..8e92dc04d33 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -50,6 +50,7 @@ return array(
'OCP\\AppFramework\\Http\\Template\\LinkMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/LinkMenuAction.php',
'OCP\\AppFramework\\Http\\Template\\PublicTemplateResponse' => $baseDir . '/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php',
'OCP\\AppFramework\\Http\\Template\\SimpleMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/SimpleMenuAction.php',
+ 'OCP\\AppFramework\\Http\\ZipResponse' => $baseDir . '/lib/public/AppFramework/Http/ZipResponse.php',
'OCP\\AppFramework\\IAppContainer' => $baseDir . '/lib/public/AppFramework/IAppContainer.php',
'OCP\\AppFramework\\Middleware' => $baseDir . '/lib/public/AppFramework/Middleware.php',
'OCP\\AppFramework\\OCSController' => $baseDir . '/lib/public/AppFramework/OCSController.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index 9301f9c90b4..841c139a730 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -80,6 +80,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OCP\\AppFramework\\Http\\Template\\LinkMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/LinkMenuAction.php',
'OCP\\AppFramework\\Http\\Template\\PublicTemplateResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php',
'OCP\\AppFramework\\Http\\Template\\SimpleMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/SimpleMenuAction.php',
+ 'OCP\\AppFramework\\Http\\ZipResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/ZipResponse.php',
'OCP\\AppFramework\\IAppContainer' => __DIR__ . '/../../..' . '/lib/public/AppFramework/IAppContainer.php',
'OCP\\AppFramework\\Middleware' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Middleware.php',
'OCP\\AppFramework\\OCSController' => __DIR__ . '/../../..' . '/lib/public/AppFramework/OCSController.php',
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index d5ccde6bba3..7e235d03fdc 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -52,6 +52,7 @@ use OC\Preview\BackgroundCleanupJob;
use OCP\Defaults;
use OCP\IL10N;
use OCP\ILogger;
+use OCP\IUser;
use OCP\Security\ISecureRandom;
class Setup {
@@ -412,6 +413,11 @@ class Setup {
$userSession->setTokenProvider($defaultTokenProvider);
$userSession->login($username, $password);
$userSession->createSessionToken($request, $userSession->getUser()->getUID(), $username, $password);
+
+ // Set email for admin
+ if (!empty($options['adminemail'])) {
+ $config->setUserValue($user->getUID(), 'settings', 'email', $options['adminemail']);
+ }
}
return $error;
@@ -445,11 +451,10 @@ class Setup {
if ($webRoot === '') {
throw new InvalidArgumentException('overwrite.cli.url is empty');
}
- $webRoot = parse_url($webRoot, PHP_URL_PATH);
- if ($webRoot === null) {
+ if (!filter_var($webRoot, FILTER_VALIDATE_URL)) {
throw new InvalidArgumentException('invalid value for overwrite.cli.url');
}
- $webRoot = rtrim($webRoot, '/');
+ $webRoot = rtrim(parse_url($webRoot, PHP_URL_PATH), '/');
} else {
$webRoot = !empty(\OC::$WEBROOT) ? \OC::$WEBROOT : '/';
}
diff --git a/lib/public/AppFramework/Http/ZipResponse.php b/lib/public/AppFramework/Http/ZipResponse.php
new file mode 100644
index 00000000000..630efb38c7d
--- /dev/null
+++ b/lib/public/AppFramework/Http/ZipResponse.php
@@ -0,0 +1,87 @@
+<?php
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Jakob Sack <mail@jakobsack.de>
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCP\AppFramework\Http;
+
+use OCP\IRequest;
+use OC\Streamer;
+
+/**
+ * Public library to send several files in one zip archive.
+ *
+ * @since 15.0.0
+ */
+class ZipResponse extends Response implements ICallbackResponse {
+ /** @var resource[] Files to be added to the zip response */
+ private $resources;
+ /** @var string Filename that the zip file should have */
+ private $name;
+ private $request;
+
+ /**
+ * @since 15.0.0
+ */
+ public function __construct(IRequest $request, string $name = 'output') {
+ $this->name = $name;
+ $this->request = $request;
+ }
+
+ /**
+ * @since 15.0.0
+ */
+ public function addResource($r, string $internalName, int $size, int $time = -1) {
+ if (!\is_resource($r)) {
+ throw new \InvalidArgumentException('No resource provided');
+ }
+
+ $this->resources[] = [
+ 'resource' => $r,
+ 'internalName' => $internalName,
+ 'size' => $size,
+ 'time' => $time,
+ ];
+ }
+
+ /**
+ * @since 15.0.0
+ */
+ public function callback(IOutput $output) {
+ $size = 0;
+ $files = count($this->resources);
+
+ foreach ($this->resources as $resource) {
+ $size += $resource['size'];
+ }
+
+ $zip = new Streamer($this->request, $size, $files);
+ $zip->sendHeaders($this->name);
+
+ foreach ($this->resources as $resource) {
+ $zip->addFileFromStream($resource['resource'], $resource['internalName'], $resource['size'], $resource['time']);
+ }
+
+ $zip->finalize();
+ }
+}