diff options
author | Olivier Paroz <github@oparoz.com> | 2015-09-18 22:56:16 +0300 |
---|---|---|
committer | Olivier Paroz <github@oparoz.com> | 2015-09-20 22:22:12 +0300 |
commit | f74f8acc349d9a411978d87940c8434ec7a7e657 (patch) | |
tree | 04b440ea500ba64be1f4efcb3fe2d8ab030680d9 /controller | |
parent | 6703b408601cb983b3b019e55efc7334b1518964 (diff) |
Only serve the media types we support
Diffstat (limited to 'controller')
-rw-r--r-- | controller/config.php | 7 | ||||
-rw-r--r-- | controller/configapicontroller.php | 4 | ||||
-rw-r--r-- | controller/configcontroller.php | 4 | ||||
-rw-r--r-- | controller/files.php | 1 | ||||
-rw-r--r-- | controller/preview.php | 12 | ||||
-rw-r--r-- | controller/previewapicontroller.php | 4 | ||||
-rw-r--r-- | controller/previewcontroller.php | 4 |
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; |