diff options
author | Julius Härtl <jus@bitgrid.net> | 2022-11-02 17:14:12 +0300 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2022-11-10 13:25:12 +0300 |
commit | bf9105e80ead06a5641e1660216f810310b61135 (patch) | |
tree | 5a0544a54c40d2621deff42d24e5c28f5003f363 | |
parent | b6db28d49e451d3f4c98a74583db9679ccb22d85 (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.php | 27 | ||||
-rw-r--r-- | templates/admin.php | 2 |
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> |