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

github.com/nextcloud/gallery.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Paroz <github@oparoz.com>2015-09-18 22:56:16 +0300
committerOlivier Paroz <github@oparoz.com>2015-09-20 22:22:12 +0300
commitf74f8acc349d9a411978d87940c8434ec7a7e657 (patch)
tree04b440ea500ba64be1f4efcb3fe2d8ab030680d9 /controller
parent6703b408601cb983b3b019e55efc7334b1518964 (diff)
Only serve the media types we support
Diffstat (limited to 'controller')
-rw-r--r--controller/config.php7
-rw-r--r--controller/configapicontroller.php4
-rw-r--r--controller/configcontroller.php4
-rw-r--r--controller/files.php1
-rw-r--r--controller/preview.php12
-rw-r--r--controller/previewapicontroller.php4
-rw-r--r--controller/previewcontroller.php4
7 files changed, 19 insertions, 17 deletions
diff --git a/controller/config.php b/controller/config.php
index b46e4edf..45c7a48c 100644
--- a/controller/config.php
+++ b/controller/config.php
@@ -17,7 +17,6 @@ use OCP\ILogger;
use OCP\AppFramework\Http;
use OCA\Gallery\Service\ConfigService;
-use OCA\Gallery\Service\PreviewService;
/**
* Trait Config
@@ -31,10 +30,6 @@ trait Config {
*/
private $configService;
/**
- * @var PreviewService
- */
- private $previewService;
- /**
* @var ILogger
*/
private $logger;
@@ -55,7 +50,7 @@ trait Config {
$nativeSvgSupport = $this->isNativeSvgActivated($features);
$mediaTypes =
- $this->previewService->getSupportedMediaTypes($extraMediaTypes, $nativeSvgSupport);
+ $this->configService->getSupportedMediaTypes($extraMediaTypes, $nativeSvgSupport);
return ['features' => $features, 'mediatypes' => $mediaTypes];
}
diff --git a/controller/configapicontroller.php b/controller/configapicontroller.php
index 529ee8e7..9d180b8d 100644
--- a/controller/configapicontroller.php
+++ b/controller/configapicontroller.php
@@ -19,7 +19,6 @@ use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
use OCA\Gallery\Service\ConfigService;
-use OCA\Gallery\Service\PreviewService;
/**
* Class ConfigApiController
@@ -37,20 +36,17 @@ class ConfigApiController extends ApiController {
* @param string $appName
* @param IRequest $request
* @param ConfigService $configService
- * @param PreviewService $previewService
* @param ILogger $logger
*/
public function __construct(
$appName,
IRequest $request,
ConfigService $configService,
- PreviewService $previewService,
ILogger $logger
) {
parent::__construct($appName, $request);
$this->configService = $configService;
- $this->previewService = $previewService;
$this->logger = $logger;
}
diff --git a/controller/configcontroller.php b/controller/configcontroller.php
index ba3cd05f..07e4a12c 100644
--- a/controller/configcontroller.php
+++ b/controller/configcontroller.php
@@ -19,7 +19,6 @@ use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCA\Gallery\Service\ConfigService;
-use OCA\Gallery\Service\PreviewService;
/**
* Class ConfigController
@@ -37,20 +36,17 @@ class ConfigController extends Controller {
* @param string $appName
* @param IRequest $request
* @param ConfigService $configService
- * @param PreviewService $previewService
* @param ILogger $logger
*/
public function __construct(
$appName,
IRequest $request,
ConfigService $configService,
- PreviewService $previewService,
ILogger $logger
) {
parent::__construct($appName, $request);
$this->configService = $configService;
- $this->previewService = $previewService;
$this->logger = $logger;
}
diff --git a/controller/files.php b/controller/files.php
index 14372b38..1777523e 100644
--- a/controller/files.php
+++ b/controller/files.php
@@ -134,6 +134,7 @@ trait Files {
private function getDownload($fileId, $filename) {
/** @type File $file */
$file = $this->downloadService->getResourceFromId($fileId);
+ $this->configService->validateMimeType($file->getMimeType());
$download = $this->downloadService->downloadFile($file);
if (is_null($filename)) {
$filename = $file->getName();
diff --git a/controller/preview.php b/controller/preview.php
index 886b4b42..6e0914c8 100644
--- a/controller/preview.php
+++ b/controller/preview.php
@@ -22,6 +22,7 @@ use OCP\AppFramework\Http;
use OCA\Gallery\Service\ServiceException;
use OCA\Gallery\Service\NotFoundServiceException;
+use OCA\Gallery\Service\ConfigService;
use OCA\Gallery\Service\ThumbnailService;
use OCA\Gallery\Service\PreviewService;
use OCA\Gallery\Service\DownloadService;
@@ -37,6 +38,8 @@ trait Preview {
/** @var IURLGenerator */
private $urlGenerator;
+ /** @var ConfigService */
+ private $configService;
/** @var ThumbnailService */
private $thumbnailService;
/** @var PreviewService */
@@ -112,14 +115,14 @@ trait Preview {
$fileId, $width, $height, $keepAspect = true, $animatedPreview = true, $base64Encode = false
) {
/** @type File $file */
- $file = $this->getFile($fileId);
+ list($file, $status) = $this->getFile($fileId);
try {
if (!is_null($file)) {
$data = $this->getPreviewData(
$file, $animatedPreview, $width, $height, $keepAspect, $base64Encode
);
} else {
- $data = $this->getErrorData(Http::STATUS_NOT_FOUND);
+ $data = $this->getErrorData($status);
}
} catch (ServiceException $exception) {
$data = $this->getExceptionData($exception);
@@ -137,14 +140,17 @@ trait Preview {
* @return array<File|int|null>
*/
private function getFile($fileId) {
+ $status = Http::STATUS_OK;
try {
/** @type File $file */
$file = $this->previewService->getResourceFromId($fileId);
+ $this->configService->validateMimeType($file->getMimeType());
} catch (ServiceException $exception) {
$file = null;
+ $status = $this->getHttpStatusCode($exception);
}
- return $file;
+ return [$file, $status];
}
/**
diff --git a/controller/previewapicontroller.php b/controller/previewapicontroller.php
index 9701c7fb..28ebafdd 100644
--- a/controller/previewapicontroller.php
+++ b/controller/previewapicontroller.php
@@ -22,6 +22,7 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
use OCA\Gallery\Http\ImageResponse;
+use OCA\Gallery\Service\ConfigService;
use OCA\Gallery\Service\ThumbnailService;
use OCA\Gallery\Service\PreviewService;
use OCA\Gallery\Service\DownloadService;
@@ -45,6 +46,7 @@ class PreviewApiController extends ApiController {
* @param string $appName
* @param IRequest $request
* @param IURLGenerator $urlGenerator
+ * @param ConfigService $configService
* @param ThumbnailService $thumbnailService
* @param PreviewService $previewService
* @param DownloadService $downloadService
@@ -55,6 +57,7 @@ class PreviewApiController extends ApiController {
$appName,
IRequest $request,
IURLGenerator $urlGenerator,
+ ConfigService $configService,
ThumbnailService $thumbnailService,
PreviewService $previewService,
DownloadService $downloadService,
@@ -64,6 +67,7 @@ class PreviewApiController extends ApiController {
parent::__construct($appName, $request);
$this->urlGenerator = $urlGenerator;
+ $this->configService = $configService;
$this->thumbnailService = $thumbnailService;
$this->previewService = $previewService;
$this->downloadService = $downloadService;
diff --git a/controller/previewcontroller.php b/controller/previewcontroller.php
index c779e3fb..66982dff 100644
--- a/controller/previewcontroller.php
+++ b/controller/previewcontroller.php
@@ -22,6 +22,7 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
use OCA\Gallery\Http\ImageResponse;
+use OCA\Gallery\Service\ConfigService;
use OCA\Gallery\Service\ThumbnailService;
use OCA\Gallery\Service\PreviewService;
use OCA\Gallery\Service\DownloadService;
@@ -45,6 +46,7 @@ class PreviewController extends Controller {
* @param string $appName
* @param IRequest $request
* @param IURLGenerator $urlGenerator
+ * @param ConfigService $configService
* @param ThumbnailService $thumbnailService
* @param PreviewService $previewService
* @param DownloadService $downloadService
@@ -55,6 +57,7 @@ class PreviewController extends Controller {
$appName,
IRequest $request,
IURLGenerator $urlGenerator,
+ ConfigService $configService,
ThumbnailService $thumbnailService,
PreviewService $previewService,
DownloadService $downloadService,
@@ -64,6 +67,7 @@ class PreviewController extends Controller {
parent::__construct($appName, $request);
$this->urlGenerator = $urlGenerator;
+ $this->configService = $configService;
$this->thumbnailService = $thumbnailService;
$this->previewService = $previewService;
$this->downloadService = $downloadService;