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:24:35 +0300 |
commit | 27a5556fdb95769c5a3c1668829d9ffa4521082f (patch) | |
tree | 036e73e8a5d965ccd06a732ec7731de80b8f7e6e | |
parent | 5b1880513c87da3303d631190f1413961bb7ced9 (diff) |
Improve error handling for global template managementbackport/2595/stable25
Signed-off-by: Julius Härtl <jus@bitgrid.net>
-rw-r--r-- | lib/Controller/TemplatesController.php | 32 | ||||
-rw-r--r-- | templates/admin.php | 2 |
2 files changed, 19 insertions, 15 deletions
diff --git a/lib/Controller/TemplatesController.php b/lib/Controller/TemplatesController.php index b70f6b51..9409409a 100644 --- a/lib/Controller/TemplatesController.php +++ b/lib/Controller/TemplatesController.php @@ -32,6 +32,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; @@ -39,16 +40,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; @@ -58,7 +57,7 @@ class TemplatesController extends Controller { * * @param string $appName * @param IRequest $request - * @param L10N $l10n + * @param IL10N $l10n * @param TemplateManager $manager * @param IPreview $preview */ @@ -66,7 +65,10 @@ class TemplatesController extends Controller { IRequest $request, IL10N $l10n, TemplateManager $manager, - IPreview $preview) { + IPreview $preview, + IMimeTypeDetector $mimeTypeDetector, + LoggerInterface $logger + ) { parent::__construct($appName, $request); $this->appName = $appName; @@ -74,6 +76,8 @@ class TemplatesController extends Controller { $this->l10n = $l10n; $this->manager = $manager; $this->preview = $preview; + $this->mimeTypeDetector = $mimeTypeDetector; + $this->logger = $logger; } /** @@ -135,17 +139,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> |