Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/richdocuments.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2022-11-02 17:14:12 +0300
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>2022-11-10 13:25:12 +0300
commitbf9105e80ead06a5641e1660216f810310b61135 (patch)
tree5a0544a54c40d2621deff42d24e5c28f5003f363
parentb6db28d49e451d3f4c98a74583db9679ccb22d85 (diff)
Improve error handling for global template managementbackport/2595/stable23
Signed-off-by: Julius Härtl <jus@bitgrid.net>
-rw-r--r--lib/Controller/TemplatesController.php27
-rw-r--r--templates/admin.php2
2 files changed, 15 insertions, 14 deletions
diff --git a/lib/Controller/TemplatesController.php b/lib/Controller/TemplatesController.php
index e59a0396..812a11e6 100644
--- a/lib/Controller/TemplatesController.php
+++ b/lib/Controller/TemplatesController.php
@@ -31,6 +31,7 @@ use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\FileDisplayResponse;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\NotFoundResponse;
+use OCP\Files\IMimeTypeDetector;
use OCP\Files\Node;
use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFile;
@@ -38,16 +39,14 @@ use OCP\IL10N;
use OCP\IPreview;
use OCP\IRequest;
use OC\Files\Filesystem;
+use Psr\Log\LoggerInterface;
class TemplatesController extends Controller {
- /** @var IL10N */
- private $l10n;
-
- /** @var TemplateManager */
- private $manager;
-
- /** @var IPreview */
- private $preview;
+ private IL10N $l10n;
+ private TemplateManager $manager;
+ private IPreview $preview;
+ private IMimeTypeDetector $mimeTypeDetector;
+ private LoggerInterface $logger;
/** @var int Max template size */
private $maxSize = 20 * 1024 * 1024;
@@ -57,7 +56,7 @@ class TemplatesController extends Controller {
*
* @param string $appName
* @param IRequest $request
- * @param L10N $l10n
+ * @param IL10N $l10n
* @param TemplateManager $manager
* @param IPreview $preview
*/
@@ -73,6 +72,8 @@ class TemplatesController extends Controller {
$this->l10n = $l10n;
$this->manager = $manager;
$this->preview = $preview;
+ $this->mimeTypeDetector = $mimeTypeDetector;
+ $this->logger = $logger;
}
/**
@@ -135,17 +136,17 @@ class TemplatesController extends Controller {
);
}
- if (!$this->manager->isValidTemplateMime($files['type'][0])) {
+ if (!$this->manager->isValidTemplateMime($mimeType)) {
return new JSONResponse(
['data' => ['message' => $this->l10n->t('Only template files can be uploaded')]],
Http::STATUS_BAD_REQUEST
);
}
- $templateName = $files['name'][0];
- $templateFile = file_get_contents($files['tmp_name'][0]);
+ $templateName = $files['name'];
+ $templateFile = file_get_contents($files['tmp_name']);
- unlink($files['tmp_name'][0]);
+ unlink($files['tmp_name']);
$template = $this->manager->add($templateName, $templateFile);
diff --git a/templates/admin.php b/templates/admin.php
index bd09a8e2..78a27e98 100644
--- a/templates/admin.php
+++ b/templates/admin.php
@@ -8,7 +8,7 @@ script('files', 'jquery.fileupload');
<?php if ($_['settings']['templatesAvailable'] === true) { ?>
<form class="section" id="richdocuments-templates" method="post" action="/template/">
- <input class="hidden-visually" id="add-template" type="file" />
+ <input name="files" class="hidden-visually" id="add-template" type="file" />
<h2>
<?php p($l->t('Global templates')) ?>
<label for="add-template" class="icon-add" title="<?php p($l->t('Add a new template')); ?>"></label>